dark_wolk 0 Denunciar post Postado Outubro 6, 2008 Ai galera to fazendo um programa em C de eleicoes so com candidatos a prefeito... naum consigo ver o erro, mas tem ora q o programa funciona e tem ora q naum... naum sei o q pode estar acontecendo ai esta o codigo #include<stdio.h> #include<stdlib.h> #define strCand "Candidatos.txt" #define TAM 10000 #define MAX 100 struct eleitores { char nome[MAX]; char sexo[10]; long int numeroTitulo; }; struct eleitores Eleitor[]; struct candidatos { char nomeCompleto[MAX]; int numero; char sexo[10]; int votos; }; struct candidatos Candidato[]; int vetorVotos[],qtdcand,qtdeleitores,qtdvotos; void listaEleitores()//Lista os eleitores { int cont; for(cont = 0;cont < qtdeleitores;cont++) { printf("Dados do %do. eleitor: \n",cont+1); printf("\n\tNome: %s\n",Eleitor[cont].nome); printf("\tSexo: %s\n",Eleitor[cont].sexo); printf("\tTitulo: %ld\n",Eleitor[cont].numeroTitulo); } getchar(); getchar(); } void cadastraCandidato()//Cadastra os candidatos { int cont; printf("Qtd. de Candidatos: "); scanf("%d",&qtdcand); for(cont = 0;cont < qtdcand;cont++) { printf("\tNome do do candidato : "); scanf("%s",Candidato[cont].nomeCompleto); printf("\tSexo: "); scanf("%s",Candidato[cont].sexo); printf("\tNumero: "); scanf("%d",&Candidato[cont].numero); } getchar(); getchar(); } void listaCandidatos()//Lista os candidatos { int cont; for(cont = 0;cont < qtdcand;cont++) { printf("\n\tNome: %s\n",Candidato[cont].nomeCompleto); printf("\tSexo: %s\n",Candidato[cont].sexo); printf("\tNumero: %d\n",Candidato[cont].numero); } getchar(); getchar(); } void realizaVotacao()//Guarda os votos { int cont,opcao; cont = 0; qtdvotos = 0; do{ printf("\tNome: "); scanf("%s", Eleitor[cont].nome); printf("\tSexo: "); scanf("%s", Eleitor[cont].sexo); printf("\tTitulo: "); scanf("%ld",&Eleitor[cont].numeroTitulo); if(Eleitor[cont].numeroTitulo == 0) break; qtdeleitores++; CORRIGE: printf("\nEntre com o numero do candidato: "); scanf("%d",&vetorVotos[cont]); printf("\t1 - CONFIRMA\n\t2 - CORRIGE\n\t3 - SAIR\n"); scanf("%d",&opcao); if(opcao == 1){ printf("Voto confirmado\n"); cont++;qtdvotos++;} else if(opcao == 2) goto CORRIGE; }while(opcao != 3); getchar(); getchar(); } void contaVotos()//Conta os votos comparando com o vetor de votos { int i,j; for(i = 0;i < qtdvotos;i++) { for(j = 0;j < qtdvotos;j++) { if(vetorVotos[j] == Candidato[i].numero) { Candidato[i].votos++; } } } } void resultadoVotacao()//Mostra resultado da eleicao { int t,maior,votos; contaVotos(); maior = 0; votos = 0; for(t = 0;t < qtdcand;t++) { printf("Numero: %d\n",Candidato[t].numero); printf("Prefeito: %s\n",Candidato[t].nomeCompleto); printf("Sexo: %s\n",Candidato[t].sexo); printf("Votos: %d\n\n", Candidato[t].votos); if(Candidato[t].votos > maior) { maior = Candidato[t].numero; votos = Candidato[t].votos; } } printf("Vencedor -> %d\nVotos - > %d\n",maior,votos); getchar(); getchar(); } void abrirReadme()//Abrir o readme { FILE *arquivo; char letra; arquivo = fopen("readme.txt", "r"); if (arquivo == NULL) { printf("Erro ao tentar abrir o arquivo.\n"); } while (!feof(arquivo)) { fscanf(arquivo, "%c", &letra); printf("%c", letra); } fclose(arquivo); getchar(); getchar(); } void trataOpcao()//Mostra menu e verifica a escolha chamando cada funcao correspondente { int opcao; do{ printf("\t\t ----URNA 2008----\n\ =======================================\n\ | 1 - Cadastrar candidatos\t\t|\n\ | 2 - Iniciar votacao\t\t\t|\n\ | 3 - Listar eleitores\t\t|\n\ | 4 - Listar candidatos\t\t|\n\ | 5 - Fechar votacao\t\t\t|\n\ | 6 - Abrir README\t\t\t|\n\ | 0 - Sair\t\t\t\t|\n\ =======================================\n"); printf("\nEntre com a opcao: "); scanf("%d",&opcao); switch(opcao){ case 0:exit(0);break; case 1:cadastraCandidato();break; case 2:realizaVotacao();break; case 3:listaEleitores();break; case 4:listaCandidatos();break; case 5:resultadoVotacao();break; case 6:abrirReadme();break; default:printf("\aOpcao invalida! Tente outra vez...\n"); } }while(opcao != 0); } int main() { trataOpcao(); return 0; } por favor naum consigo ver o erro... ou os erros... socorroooooooo !!!! Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Outubro 6, 2008 oq você ta percebendo de estranho? Compartilhar este post Link para o post Compartilhar em outros sites
dark_wolk 0 Denunciar post Postado Outubro 6, 2008 cara tem oras q funciona e tem oras q naum... na verdade o real problema eh q as vezes qdo se executa a eleicao o mesmo q eu tenha entrando com um certo numero de candidatos... tem ora q sao mantidos e tem ora q naum... ai mistura as coisas e aparace nome de eleitor como candidato qdo coloca pra listar os candidatos... o interessante eh q qdo listo os eleitores tah td legal lah ... :blink: Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Outubro 6, 2008 fala pra mim a ordem das opções q você usa qnd da algum problema? tipo oq você faz primeiro, cadastra, lista, tipo isso.. []'s Compartilhar este post Link para o post Compartilhar em outros sites
dark_wolk 0 Denunciar post Postado Outubro 6, 2008 achu q eh a ordem q eu faco as coisas que ta dando problema... primeiro cadastro os candidatos... depois inicio a votacao... cadastrando os eleitores e votando... depois qdo termino... verifico os eleitores cadastrados tah beleza... so q qdo verifico os candidatos da problema... e pra fechar a votacao da problema tb Compartilhar este post Link para o post Compartilhar em outros sites