Ciao,
devo creare un programma che svolga questo problema:
Per l'elezione del rappresentante di classe vi sono tre candidati, A, B e C. Durante lo spoglio il programma conteggia, uno alla volta, il numero di voti ottenuti da ciascun candidato e il numero di schede nulle. Al termine dello spoglio il programma comunica il nome del vincitore e la percentuale delle schede valide sul totale.
Io ho scritto questo programma:
codice:
//Elezioni dei rappresentanti
#include <stdio.h>
int main()
{
int num; //Numero totale delle schede
int val; //Numero di schede valide
int nul; //Numero di schede nulle
float per; //Percentuale di schede valide
int k; //Numero di voti per a
int j; //Numero di voti per b
int w; //Numero di voti per c
char a, b, c, d; //Candidati a, b, c mentre d e\' cio\' che e\' scritto sulla scheda
a='a';
b='b';
c='c';
printf("Inserire il nome del candidato 0 per terminare:");
do
{
scanf("%c", &d);
num++;
if(d==a)
{
k++;
val++;
}
else
{
if(d==b)
{
j++;
val++;
}
else
{
if(d==c)
{
w++;
val++;
}
else
nul++;
}
}
}
while(d!=0);
per=val*100/num;
if(k>j)
{
if(k>w)
printf("a ha vinto le elezioni");
else
printf("c ha vinto le elezioni");
}
else
{
if(j>c)
printf("b ha vinto le elezioni");
else
printf("c ha vinto le elezioni");
}
printf("Il numero di schede totali e\' di: %d",num);
nul=num-val;
printf("Il numero di schede valide e\' di: %d",val);
printf("Il numero di schede nulle e\' di: %d",nul);
printf("La percentuale di schede valide sul totale e\' di: %f",per);
printf("\n");
system("pause");
return 0;
}
Il problema è che rimane sempre piantato sulla printf senza mai avanzare.
Potreste gentilmente spiegarmi dove ho sbagliato e se vi sono degli altri problemi che mi sono sfuggiti?
Ciao e grazie mille