Salve a tutti,sono nuovo sia di questo forum che della programmazione in C generale.
Ho un grosso problema con un programma che dovrebbe stamparmi il numero di voti di un determinato candidato in un'elezione.
Vi allego il mio programma
#include <stdio.h>
#include <stdlib.h>
int N,num;
void spoglio_schede(int cand[],int vot[],int num,int N);
int main()
{
int i;
int *candidati;
int *voti;
printf("Inserisci numero candidati:\n");
scanf("%d",&N);
printf("Inserisci numero totale votanti:\n");
scanf("%d",&num);
candidati=(int*)malloc(N*sizeof(int));
voti=(int*)malloc(num*sizeof(int));
for(i=0;i<num;i++)
{
printf("Inserisci preferenza candidato compreso fra 1 e %d:",N);
scanf("%d",&voti);
}
spoglio_schede(candidati,voti,num,N);
for(i=1;i<=N;i++) printf("il punteggio del candidato %d e' %d", i, candidati[i-1]);
}
void spoglio_schede(int cand[],int vot[],int num,int N)
{
int i,j;
for(i=0;i<num;i++)
{
for(j=1;j<=N;j++)
{
if(vot==j)
{
cand[j-1]+=1;
}
}
}
}
Semplificando il programma non scrivendo alcuna funzione ho intuito che l'errore sta nell funzione spoglio_schede, in quanto a video vengono stampati dei valori totalmente errati.
In quanto non sono in grado di capire l'eventuale errore, sarei grato a chiunque riuscisse a risolvere questo mio dubbio.