Ho cecato di fare ciò che tu mi hai consigliato però non sò se è giusto.
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);
     while(getchar()!='\n'); //Serve per pulire il buffer di tastiera
     {
        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("\n\na ha vinto le elezioni");
        else
        printf("\n\nc ha vinto le elezioni");
    }    
    else
    {
        if(j>c)
        printf("\n\nb ha vinto le elezioni");
        else
        printf("\n\nc ha vinto le elezioni");
    }
    printf("\n\nIl numero di schede totali e\' di: %d",num);
    nul=num-val;
    printf("\n\nIl numero di schede valide e\' di: %d",val);   
    printf("\n\nIl numero di schede nulle e\' di: %d",nul);
    printf("\n\nLa percentuale di schede valide sul totale e\' di: %f",per);   
    printf("\n\n");     
    system("pause");   
    return 0;
}
Ma è giusto o sbagliato visto che non sapevo bene cosa fare?

Ciao e grazie