Ir ao conteúdo
  • Cadastre-se

Programa de Votos


jasquelp86

Posts recomendados

Galera preciso da ajuda de vocês. Já tentei de várias formas, com if, com case, com vetor, mais não consigo desenvolver um código para este programa. Sou iniciante e preciso da ajuda de vocês. Alguém pode me ajudar só a resolver esta questão:

Preciso de ajuda em Linguagem C: O condomínio X,Y,Z realizou uma eleição para sindico, onde concorreram:

Escreva um programa para efetuar a apuração da eleição. Será fornecido o número do candidato quando o voto for válido, 0 quando for BRANCO e 6 quando NULO. Mostrar uma relação contendo o nome e o total de votos de cada candidato em ordem decrescente , o percentual de votos válidos e o vencedor da eleição.

1- Maria Ferreira

2- Silas Prado

3- Carlos Xavier

4- Marina Stuart

5- Francisca Pimenta

6- NULO

0- BRANCO

Me ajuda aí galera.

Link para o comentário
Compartilhar em outros sites

Esse foi o código que fiz, mais dá mtos erros e o meu professor disse que tenho que trabalhar com vetores, mas eu não sei, sou iniciante: Olha o código até onde consegui fazer:

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
main () {
int voto;
int voto1;
int voto2;
int voto3,voto4,voto5,voto6,voto0;
char resp;
while ( resp=='s');
{
printf ("Escolha um dos numeros abaixo para realizar a sua votacao:");
printf ("\n\n 1 - Maria Ferreira");
printf ("\n 2 - Silas Prado");
printf ("\n 3 - Carlos Xavier");
printf ("\n 4 - Marina Stuart");
printf ("\n 5 - Francisca Pimenta");
printf ("\n 6 - Voto Nulo");
printf ("\n 0 - Branco\n\n");
{
scanf ("%d", & voto);
if (voto == 1){
voto1++;
printf ("voce votou em Maria Ferreira\n");
}
if (voto==2){
voto2=voto+1;
printf ("voce votou em Silas Prado\n");
}
if (voto==3){
voto3++;
printf ("voce votou em Carlos Xavier\n");
}
if (voto==4){
voto4++;
printf ("voce votou em Marina Stuart\n");
}
if (voto==5) {
voto5++;
printf ("voce votou em Francisca Pimenta\n");
}
if (voto==6){
voto6++;
printf ("voce votou NULO\n");
}
if (voto==0){
voto0++;
printf ("voce votou em BRANCO\n");
}
else {
printf ("Voto invalido\n");
}
printf ("Deseja realizar um novo voto? S/N\n\n");
scanf ("%c", & resp);
}
}
{
printf ("Fim da votacao\n\n");
system("pause");
}

printf ("Maria Ferreira teve: %d votos\n", & voto1 );
printf ("Silas Prado teve: %d votos\n", & voto2 );
printf ("Carlos Xavier teve: %d votos\n", & voto3 );
printf ("Marina Stuart teve: %d votos\n", & voto4 );
printf ("Francisca Pimenta teve: %d votos\n", & voto5 );
printf ("Voto NULO teve: %d votos\n", & voto6 );
printf ("Voto em BRANCO teve: %d votos\n", & voto0 );}

}

Link para o comentário
Compartilhar em outros sites

jasquelp86,

Esse foi o código que fiz, mais dá mtos erros e o meu professor disse que tenho que trabalhar com vetores, mas eu não sei, sou iniciante

Eu montei um exemplo que poderá servir de base para você implementar o seu próprio programa. Existem várias formas de fazer, esta abaixo é apenas uma proposta.

No exemplo abaixo, você já tem a base para computar os votos válidos. Crie duas variáveis inteiras para os votos brancos e nulos. Ao terminar, você precisa ordenar esse vetor pelo número de votos. Pronto, você já conhece o vencedor e tem o vetor pronto para a imprimir os candidatos e respectivos votos.

#include <stdio.h>
#include <stdlib.h>

struct candidato_t
{
char *nome;
int votos;
} candidato[5] = { {"Maria Ferreira", 0},
{"Silas Prado", 0},
{"Carlos Xavier", 0},
{"Marina Stuart", 0},
{"Francisca Pimenta", 0}
};

int main()
{

int i, op;
char cont;

do
{
printf("Candidato (1, 2 ou 3): ");
scanf("%d", &op);
fflush(stdin);

if (op == 1)
candidato[0].votos++;
else if (op == 2)
candidato[1].votos++;
else if (op == 3)
candidato[2].votos++;

/* etc. */

printf("Continua? s/n\n");
scanf("%c", &cont);
}
while (cont != 'n');

for (i = 0; i < 5; i++)
printf("'%s' teve: %d votos\n", candidato[i].nome, candidato[i].votos);

return 0;
}

[]'s

LNW

Link para o comentário
Compartilhar em outros sites

Apenas fiz uma leve modificação.


#include <stdio.h>

struct candidato
{
const char *nome;
int votos;
} candidato[5] = { {"Maria Ferreira", 0},
{"Silas Prado", 0},
{"Carlos Xavier", 0},
{"Marina Stuart", 0},
{"Francisca Pimenta", 0}
};

int main(int argc, char **argv)
{
int nulo = 0 , branco = 0, voto;
char cont;
do
{
printf ("Escolha um dos numeros abaixo para realizar a sua votacao:");
printf ("\n\n 1 - Maria Ferreira");
printf ("\n 2 - Silas Prado");
printf ("\n 3 - Carlos Xavier");
printf ("\n 4 - Marina Stuart");
printf ("\n 5 - Francisca Pimenta");
printf ("\n 6 - Voto Nulo");
printf ("\n 0 - Branco\n\n");
scanf("%d",&voto);
switch(voto)
{
case 0:
{
nulo++;
break;
}
case 1: case 2: case 3: case 4: case 5:
{
candidato[voto - 1].votos++;
break;
}
case 6:
{
branco++;
break;
}
default:
{
printf("Não existe\n");
break;
}
}
printf("Continua? s/n\n");
scanf("%c", &cont);
}
while(cont != 'n');
for (int i = 0; i < 5; i++)
printf("'%s' teve: %d votos\n", candidato[i].nome, candidato[i].votos);
printf("Nulo:%d --- Branco:%d",nulo,branco);

}

Link para o comentário
Compartilhar em outros sites

A minha maior dúvida é a seguinte: Como eu guardo o nome e o seu voto juntos para que no final eu os ordene em ordem decrescente?

Minha ideia: Eu pensei em criar um vetor com 20 posições sendo que nas primeiras posições guardaria o nome e na última posição do vetor o voto, desta forma depois eu faria a leitura apenas da última posição do vetor onde está guardado o voto e assim conseguiria ordenar por ordem decrescente. A questão é: Dá pra fazer isso?

Um exemplo: (guardar o nome em um vetor)



char [20]= "Maria Ferreira";

Neste exemplo eu guardo o nome em um vetor de 20 posições, mas agora como eu guardo o valor do voto na última posição deste vetor? Dá pra fazer?

Link para o comentário
Compartilhar em outros sites

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...