Fazer um programa de votação que abra arquivo de numero de candidatos, partidos, votos nulos, total de eleitos, eu comecei a a fazer mas estou com dificuldade alguém poderia me ajudar? O codigo é:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int lerCand(int *can, int *par, int *votos){
FILE * arq;
int x;
arq = fopen ("candidatos.txt","r");
x=0;
while ( !feof(arq)){
fscanf( arq,"%d %d", &can[x] ,&par[x]);
votos[x]=0;
x++;
}
fclose(arq);
return x;
}
int lerVotos(int *can, int *votos, int t){
FILE * arq, *nulo;
int x, vg=0;
int codC;
arq = fopen ("Votos.txt","r");
nulo = fopen ("nulos.txt","w");
while ( !feof(arq)){
fscanf( arq,"%d",&codC);
x=0;
while (codC!=can[x] && x<t)
x++;
if(x<t) {
votos[x]++;
vg++;
} else
fprintf(nulo,"%d \n",codC);
}
fclose(arq);
fclose(nulo);
return vg;
}
int ordena(int *vet1, int *vet2, int *vet3, int t){
int x,y,aux;
for(y=0; y<t-1; y++){
for(x=0; x<t-y-1; x++){
if(vet1[x]>vet1[x+1]){
aux=vet1[x];
vet1[x]=vet1[x+1];
vet1[x+1]=aux;
aux=vet2[x];
vet2[x]=vet2[x+1];
vet2[x+1]=aux;
aux=vet3[x];
vet3[x]=vet3[x+1];
vet3[x+1]=aux;
}
}
}
}
int votospar(int *votos,int *par,int *vpar,int *vvpar,int tc){
int x;
int p=0;
p=0;
vpar[p]=par[0];
vvpar[p]=votos[0];
for(x=1;x<tc;x++){
if(vpar[p]==par[x])
vvpar[p]=vvpar[p]+votos[x];
else {
p++;
vpar[p]=par[x];
vvpar[p]=votos[x];
}
}
p++;
return p;
}
int votval(int *nulos, int *votos, int tval){
int arqnulos;
int conta, qnulos, conta2, validos, x, achou, i, vot, candid=0,cv[0],nulo;
FILE *arq;
arq = fopen("arqnulos.txt", "r");
conta2=0;
validos=0;
for(x=0; x<validos;x++)
{
achou=0;
for(i=0;i<conta;i++)
{
if(vot!=0)
candid++; //conta=numero de candidatos
{ //qnulos= quantidade de nulos
validos=validos+1; // conta2= total de votos
achou=1; // validos = votos validos
cv[i]=cv[i]+1;
}
}
}
if(achou==0)
fprintf(arq,"%d\n",vot);
conta2=conta2+1;
qnulos = (conta2-validos);
validos = conta2-qnulos;
printf("quantidade de votos nulos: %d\n",qnulos);
printf("quant. de votos validos:%d\n",validos);
printf("quant. votos totais: %d\n",conta2);
}
int main () {
int can[100], par[100], votos[100], vpar[10], vvpar[10];
int tc,tvotos, v, t, tl, tp, nulo, tval,votosval;
tc=lerCand(can,par,votos);
tvotos=lerVotos(can,votos,tc);
ordena(par,can,votos,tc);
tp=votospar(votos,par,vpar,vvpar,tc);
votval(nulo, votos, tval);
for(v=0; v<tc; v++)
printf(" \n\n %d %d %d %d",tc,can[v],par[v],votos[v]);
printf("\n---------------------------\n");
for(v=0; v<tp; v++)
printf(" \n\n Quantidade de partidos %d; Codigo do partido %d; Quantidade de votos %d,",tp,vpar[v],vvpar[v]);
}
system("pause");
}
Pergunta
Marionei
Fazer um programa de votação que abra arquivo de numero de candidatos, partidos, votos nulos, total de eleitos, eu comecei a a fazer mas estou com dificuldade alguém poderia me ajudar? O codigo é:
#include <stdio.h> #include <stdlib.h> #include <time.h> int lerCand(int *can, int *par, int *votos){ FILE * arq; int x; arq = fopen ("candidatos.txt","r"); x=0; while ( !feof(arq)){ fscanf( arq,"%d %d", &can[x] ,&par[x]); votos[x]=0; x++; } fclose(arq); return x; } int lerVotos(int *can, int *votos, int t){ FILE * arq, *nulo; int x, vg=0; int codC; arq = fopen ("Votos.txt","r"); nulo = fopen ("nulos.txt","w"); while ( !feof(arq)){ fscanf( arq,"%d",&codC); x=0; while (codC!=can[x] && x<t) x++; if(x<t) { votos[x]++; vg++; } else fprintf(nulo,"%d \n",codC); } fclose(arq); fclose(nulo); return vg; } int ordena(int *vet1, int *vet2, int *vet3, int t){ int x,y,aux; for(y=0; y<t-1; y++){ for(x=0; x<t-y-1; x++){ if(vet1[x]>vet1[x+1]){ aux=vet1[x]; vet1[x]=vet1[x+1]; vet1[x+1]=aux; aux=vet2[x]; vet2[x]=vet2[x+1]; vet2[x+1]=aux; aux=vet3[x]; vet3[x]=vet3[x+1]; vet3[x+1]=aux; } } } } int votospar(int *votos,int *par,int *vpar,int *vvpar,int tc){ int x; int p=0; p=0; vpar[p]=par[0]; vvpar[p]=votos[0]; for(x=1;x<tc;x++){ if(vpar[p]==par[x]) vvpar[p]=vvpar[p]+votos[x]; else { p++; vpar[p]=par[x]; vvpar[p]=votos[x]; } } p++; return p; } int votval(int *nulos, int *votos, int tval){ int arqnulos; int conta, qnulos, conta2, validos, x, achou, i, vot, candid=0,cv[0],nulo; FILE *arq; arq = fopen("arqnulos.txt", "r"); conta2=0; validos=0; for(x=0; x<validos;x++) { achou=0; for(i=0;i<conta;i++) { if(vot!=0) candid++; //conta=numero de candidatos { //qnulos= quantidade de nulos validos=validos+1; // conta2= total de votos achou=1; // validos = votos validos cv[i]=cv[i]+1; } } } if(achou==0) fprintf(arq,"%d\n",vot); conta2=conta2+1; qnulos = (conta2-validos); validos = conta2-qnulos; printf("quantidade de votos nulos: %d\n",qnulos); printf("quant. de votos validos:%d\n",validos); printf("quant. votos totais: %d\n",conta2); } int main () { int can[100], par[100], votos[100], vpar[10], vvpar[10]; int tc,tvotos, v, t, tl, tp, nulo, tval,votosval; tc=lerCand(can,par,votos); tvotos=lerVotos(can,votos,tc); ordena(par,can,votos,tc); tp=votospar(votos,par,vpar,vvpar,tc); votval(nulo, votos, tval); for(v=0; v<tc; v++) printf(" \n\n %d %d %d %d",tc,can[v],par[v],votos[v]); printf("\n---------------------------\n"); for(v=0; v<tp; v++) printf(" \n\n Quantidade de partidos %d; Codigo do partido %d; Quantidade de votos %d,",tp,vpar[v],vvpar[v]); } system("pause"); }Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.