Ir para conteúdo
Fórum Script Brasil

JaoOLeigo

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre JaoOLeigo

JaoOLeigo's Achievements

0

Reputação

  1. Vou colocar uma parte do programa, a parte que estou em duvida mas tem mais código pra cima e pra baixo do que vou mostrar. O que acontece é que eu não consigo fazer esse do-while funcionar, já tentei usar tanto o %c quanto o %s no scanf. já tentei usar aspas simples tanto na declaração do char, quanto la dentro da condição do while, tentei varias combinações envolvendo, %c %s ' ' e " ". Eu sei que o certo é usar a aspas simples e o %c porem tentei isso tudo porque não tava dando certo. Quando chega la no scanf do while, ele le a variavel cont mas depois finaliza o programa, nem chega a executar os comandos abaixo dele. obs: já tentei com a biblioteca string.h inserida e não deu, tirei ela a toa mesmo. Código completo: #include <stdio.h> #include <stdlib.h> struct tiposDeVoto{ int nulos; int brancos; int c[4]; }tDV={0,0,{0,0,0,0}}; struct porcVotos{ float nulos; float brancos; float c[4]; }pV={0.0,0.0,{0.0,0.0,0.0,0.0}}; int main(){ /*Em uma eleição para governador concorrem 4 candidatos (1, 2, 3 e 4). No dia da eleição cada um dos N eleitores votaram: • 1, 2, 3 ou 4 para cada candidato. • 0 (zero) para voto em branco. • -1 para voto nulo. Considere que: • O candidato ganha a eleição se fizer 51% ou mais do total de votos. • Se não houver ganhador, os dois melhores irão para o segundo turno. Faça um programa em C que calcule e imprima: • O candidato vencedor (se houver), seguido da porcentagem de votos obtida. Se não houver vencedor, imprima os candidatos que irão ao segundo turno com a respectiva porcentagem de votos obtida. • A porcentagem obtida pelos demais candidatos. • A porcentagem de votos em branco e nulos.*/ tentenovamente: printf("----------------------------\n"); printf(" Urna eleitoral "); printf("\n 1- Tiago\n 2- Pedro\n 3- Alvaro\n 4- Chaves\n 0- Voto em branco\n -1- Voto nulo\n"); printf("------------------------------\n"); int voto=0,i=0; char cont="a"; do{ printf("Digite o voto: "); scanf("%i",&voto); switch (voto){ case 1: tDV.c[0]+=1; break; case 2: tDV.c[1]+=1; break; case 3: tDV.c[2]+=1; break; case 4: tDV.c[3]+=1; break; case -1: tDV.nulos+=1; break; case 0: tDV.brancos+=1; break; default: printf("Escolha invalida!\nTente novamente!\n"); goto tentenovamente; } i++; printf("Quer continuar? [S/N]"); scanf("%s",&cont); } while (cont=="S"); int totalDeVotos=i+1; pV.brancos=tDV.brancos/totalDeVotos; pV.nulos=tDV.nulos/totalDeVotos; for (int k=0;k<4;k++) pV.c[k]=(float)tDV.c[k]/totalDeVotos; int vencedor=0; printf("pv.c[0]: %.2f\n",pV.c[0]); if(pV.c[0]>0.51 && pV.c[0]>pV.c[1] && pV.c[0]>pV.c[2] && pV.c[0]>pV.c[3]){ vencedor=1; printf("Tiago e o vencedor da eleicao com %0.2f %% dos votos",(pV.c[0]*100)); } if(pV.c[1]>0.51 && pV.c[1]>pV.c[0] && pV.c[1]>pV.c[2] && pV.c[1]>pV.c[3]){ vencedor=1; printf("Pedro e o vencedor da eleicao com %0.2f %% dos votos",(pV.c[1]*100)); } if(pV.c[2]>0.51 && pV.c[2]>pV.c[0] && pV.c[2]>pV.c[1] && pV.c[2]>pV.c[3]){ vencedor=1; printf("Alvaro e o vencedor da eleicao com %0.2f %% dos votos",(pV.c[2]*100)); } if(pV.c[3]>0.51 && pV.c[3]>pV.c[0] && pV.c[3]>pV.c[2] && pV.c[3]>pV.c[1]){ vencedor=1; printf("Chaves e o vencedor da eleicao com %0.2f %% dos votos",(pV.c[3]*100)); } /*if (vencedor==0){ printf("vencedor=0"); }*/ return 0; }
×
×
  • Criar Novo...