Ir ao conteúdo

Duvida em porcentagem em C


SergioBraun

Posts recomendados

Postado

Galera, estou com duvida em como fazer o seguinte comando:

"O candidato A recebeu (n)% dos votos", eu só consegui mostrar a quantidade de votos....

valeu a quem ajudar

O codigo está ai.

#include <stdio.h>

int main(){

float A = 0;

float B = 0;

float C = 0;

float nulo = 0;

float branco = 0;

int voto = 0;

int sessao = 0;

int vezes = 0;

float validos = 0;

float nvalidos = 0;

float tvotos = 0;

printf("\nQuantas pessoas irao votar? ");

scanf("%d",&sessao);

while(vezes < sessao){

printf("\n");

printf("Digite 1 para votar no candidato A\n");

printf("Digite 2 para votar no candidato B\n");

printf("Digite 3 para votar no candidato C\n");

printf("Digite 4 para votar anular seu voto\n");

printf("Digite 5 para votar em branco\n");

printf("Digite sua opcao: ");

scanf("%d",&voto);

if((voto != 1) && (voto != 2) && (voto != 3) && (voto != 4) && (voto != 5)){

printf("\n");

printf("Opcao nao reconhecida!\n");

}else {

printf("\n\n");

vezes++;

}

if(voto==1){

A++;

}else if(voto==2){

B++;

}else if(voto==3){

C++;

}else if(voto==4){

nulo++;

}else if(voto==5){

branco++;

}

}

validos = A + B + C;

nvalidos = nulo + branco;

tvotos = validos + nvalidos;

if((A>B)&&(A>C)){

printf("%.0f pessoas votaram\nO Candidato A foi o mais votado, com %.0f votos\nTiveram %.0f votos nulos e %.0f votos em branco\n",tvotos,A,nulo,branco);

}else if((B>C)&&(B>A)){

printf("%.0f pessoas votaram\nO Candidato B foi o mais votado, com %.0f votos\nTiveram %.0f votos nulos e %.0f votos em branco\n",tvotos,B,nulo,branco);

}else if((C>A)&&(C>B)){

printf("%.0f pessoas votaram\nO Candidato C foi o mais votado, com %.0f votos\nTiveram %.0f votos nulos e %.0f votos em branco\n",tvotos,C,nulo,branco);

}

if((A>0)&&(B>0)&&(A==B)&&(C<A)&&(C<B)){

printf("Segundo turno entre os candidatos A e B\n");

}else if((A>0)&&(C>0)&&(A==C)&&(B<A)&&(B<C)){

printf("Segundo turno entre os candidatos A e C\n");

}else if((B>0)&&(C>0)&&(B==C)&&(A<B)&&(A<C)){

printf("Segundo turno entre os candidatos B e C\n");

}else if((A==0)&&(B==0)&&(C==0)&&(branco>0)||(nulo>0)){

printf("Segundo turno entre os candidatos A, B e C\n");

}

return 0;

}

Postado

A chance de eu ler isso aí é zero enquanto você não usar tags quote com identação correta.

Além disso, troque essa montanha de ifs por switch. Assim:


do {
printf("Digite 1 para votar no candidato A\n");
printf("Digite 2 para votar no candidato B\n");
printf("Digite 3 para votar no candidato C\n");
printf("Digite 4 para votar anular seu voto\n");
printf("Digite 5 para votar em branco\n");
printf("Digite sua opcao: ");
scanf("%d",&voto);

switch (voto) {
case 1: codigo;
break;
case 2: codigo;
break;
default: printf("Opcao invalida, tente novamente.\n");
break;
} while (opcao != 1 && opcao != 2 && opcao != 3 && opcao != 4 && opcao != 5);

Apesar de não ter lido, pra calcular procentagem se faz assim:

float porcA;

float porcA = 100 * A / sessao;

E imprima especificando quantas casas você quer antes e depois da virgula:

printf("Porcentagem A: %2.2f", &porcA);

Assim ele sempre imprime 2 casas antes e depois da virgula, mesmo que tenha que fazer 02.30%.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!