Tentei encontrar alguma utilidade para essa parte do código:
if(cand==1) scanf("%f",&cand[1]); else if(cand==2) scanf("%f",&cand[2]); else if(cand==3) scanf("%f",&cand[3]); else if(cand==4) scanf("%f",&cand[4]); else if (cand==5) scanf("%f",&cand[5]); printf("\n\n");
mas não encontrei...
O usuário deve digitar o número do candidato, depois confirmar, e isso acontece até ele digitar -1, correto?
Basicamente, você deve fazer uma estrutura de laço (while, do-while, for...) para ir lendo os numeros dos candidatos até ser informado -1, e armazenando os votos num único vetor.
É muito comum utilizar os numeros dos indices do vetor neste caso. Um vetor de 6 posições, por exemplo, vai do indice 0 até o indice 5. Imagine agora que o usuário queira votar no Tiririca. Seu número é 4. Para computar tal voto, após a confirmação, basta incrementar:
qtdeVotos[codigoDoCandidato]++;
Simples, não?
Tente fazer. Caso não consiga, dê uma olhada no que eu fiz:
#include <stdio.h> int main(){ int i, qtdeVotos[6] = {0,0,0,0,0}, totalVotos = 0; char confirmar, candidatos[][20] = {"","Marta Suplicy", "Paulo Maluf", "Netinho","Tiririca", "Branco"}; printf(":: || ELEICOES 2011 || ::\n\n"); do{ printf("Escolha seu candidato:\n\n"); printf("1 - Marta Suplicy\n2 - Paulo Maluf\n3 - Netinho\n4 - Tiririca\n5 - Branco\n\n"); scanf("%d", &i); if(i == -1){ printf("Votacao encerrada.\n"); system("CLS"); break; } else if(i > 5){ system("CLS"); printf("Candidato Invalido.\n"); continue; } do { if(i == 5){ printf("Confirmar voto em branco? (S ou N)", i); } else { printf("Confirmar voto para candidado numero %d (%s)? (S ou N)", i, candidatos[i]); } fflush(stdin); scanf("%c", &confirmar); confirmar += (confirmar == 78 || confirmar == 83) ? 32 : 0; } while (confirmar != 110 && confirmar != 115); system("CLS"); if(confirmar == 's'){ qtdeVotos[i]++; totalVotos++; } else { continue; } } while (1); if(totalVotos == 0){ printf("Nao houve votacao.\n"); return(0); } else { for(i=1; i<=5; i++){ printf("Candidato %d (%s) recebeu %2.2f%% votos.\n", i, candidatos[i], ((float)qtdeVotos[i]/totalVotos)*100); } } return(0); }