Ir para conteúdo

Arquivado

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

robdomingues

Programa de votação

Recommended Posts

o exercicio pede:

1)Crie um programa com a contagem de votos de 3 candidatos e 50 eleitores, mostrando a quantidade de votos de cada candidato;
o que eu fiz:
int main()
{
int votos[6];
int c1=0, c2=0, c3=0, vnulos=0, i;

for (i=0; i<6; i++){

printf("Escolha Seu Candidato => c1 ou c2 ou c3:\n");
scanf("%d", &votos);

if(votos == "c1"){
c1 = c1++;
}
else if(votos == "c2"){
c2 = c2++;
}
else if(votos == "c3"){
c3 = c3++;
}
else{
vnulos = vnulos++;
}
system("CLS");
}

printf("Quantidade de Votos do Candidato C1: %d\n", c1);
printf("Quantidade de Votos do Candidato C2: %d\n", c2);
printf("Quantidade de Votos do Candidato C3: %d\n", c3);
printf("Quantidade de Votos Nulos: %d\n", vnulos);

system("PAUSE");
return 0;
}
Me ajudem por favor para eu saber o que eu estou fazendo de errado. Grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

A intenção é o usuário escolher entre c1 c2 e c3 e ao digitar a condicional faz o armazenamento para poder no final mostrar o resultado, porém quando digito c1 ou outra coisa o laço é desfeito e aparecem os resultados zerados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está usando um vetor de inteiros para armazenar string.

 

Mude o tipo, para poder trabalhar com string, diretamente:

char votos[10];
[...]
scanf("%s%*c", votos);
[...]
if( strcmp(votos, "c1") == 0 )
[...]
else if( strcmp(votos, "c2") == 0 )
[...]
else if( strcmp(votos, "c3") == 0 )

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, nesta parte não havia me atentado realmente, obrigado, mas pode me dizer o que esta de errado que não funciona a contagem para serem apresentadas no final, estão aparecendo zeradas,

 

printf("Quantidade de Votos do Candidato C1: %d\n", c1);
printf("Quantidade de Votos do Candidato C2: %d\n", c2);
printf("Quantidade de Votos do Candidato C3: %d\n", c3);
printf("Quantidade de Votos Nulos: %d\n", vnulos);

sera que estão no lugar errado ou os ifs que estão fora dos padrões?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exatamente por causa do problema que comentei anteriormente.

Como você está usando vetor do tipo inteiro, o conteúdo que é armazenado nele não bate com a comparação que você está fazendo, logo, a contabilização acaba não ocorrendo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Passei tudo para inteiro para apenas resolver este problema, não sei se declarar o c1 c2 e c3 com zero é o correto

 

#include <stdio.h>
#include <stdlib.h>
int main()
{
int votos[6];
int c1=0, c2=0, c3=0, vnulos=0;
int i;
for (i=0; i<6; i++)
{
printf("Escolha Seu Candidato => 1 ou 2 ou 3:\n");
scanf("%d", &votos);
if((votos) == 1)
{
c1 = c1++;
}
else if((votos) == 2)
{
c2 = c2++;
}
else if((votos) == 3)
{
c3 = c3++;
}
else
{
vnulos = vnulos++;
}
system("CLS");
}
printf("Quantidade de Votos do Candidato C1: %d\n", c1);
printf("Quantidade de Votos do Candidato C2: %d\n", c2);
printf("Quantidade de Votos do Candidato C3: %d\n", c3);
printf("Quantidade de Votos Nulos: %d\n", vnulos);
system("PAUSE");
return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

A utilização do pós-incremento está incorreto.

Utilize apenas c1++, este comando significa o mesmo que fazer c1 = c1+1.

 

Portanto, ao fazer c1 = c1++ você está sobrescrevendo o valor da variável.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo, creio que a solução de seu problema seja a seguinte:

#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
    int votos[1000];
    int c1=0, c2=0, c3=0, vnulos=0;
    int i;
    int qtdEleitores = 0, restEleitores = 0; //interessante tbém em seu programa, é informar a quantidade de eleitores que vão votar nos candidados
    
    printf("Informe a quantidade de eleitores que vao votar: ");
    scanf("%i", &qtdEleitores);
    restEleitores = qtdEleitores;
    system("CLS");
    for (i=0; i<qtdEleitores; i++)
    {
    	printf("Faltam %i eleitores para votor\n\n", restEleitores);
        printf("Escolha Seu Candidato => 1, 2 ou 3:\n\n");
        scanf("%d", &votos[i]);
 
        if((votos[i]) == 1){
            c1++;
        }else if((votos[i]) == 2){
            c2++;
        }else if((votos[i]) == 3){
            c3++;
        }else{
            vnulos++;
        }
        restEleitores--;
        system("CLS");
    }
 
    printf("Quantidade de Votos do Candidato C1: %i\n", c1);
    printf("Quantidade de Votos do Candidato C2: %i\n", c2);
    printf("Quantidade de Votos do Candidato C3: %i\n", c3);
    printf("Quantidade de Votos Nulos: %i\n", vnulos);
 
    system("PAUSE");
    return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.