• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

bryanmg

exercicio com vetor para votos

3 mensagens neste tópico

aqui mais uma vez preciso de ajuda to com um exercicio este: 3)  Existem  4  indivíduos  que  são  candidatos  à  presidência  da  república,

conforme  a  listagem abaixo. Cada um deles é designado por um número de

ordem que servirá para a indicação de voto de cada eleitor.

0 - Cristovam Buarque

1 - Geraldo Alckmin

2 - Heloísa Helena

3 - Lula

Fazer  um  algoritmo  que  leia  um  número  indeterminado  de  votos  (cada  voto

contém o número de cada candidato), calcule e imprima:

•  O número de votos de cada candidato, juntamente com seu nome.

•  O nome do vencedor. 

ai comecei a fazer o codigo, mas acho que ta errado o codigo é este:

#include<iostream.h>
using namespace std;
int main (){
  
  string nome_candidato[] = {"Cristovam Buarque", "Geraldo Alckmin", "Heloisa Helena", "Lula"}, 
  nome_vencedor;
  int voto, soma[] ={0, 0, 0, 0}, maior = -32000;
  
  cout << "Insira o numero do seu candidato (Entre 0 e 3): ";
  cin >> voto;
  
  while(voto < 0 || voto > 3){
   if(voto = 0){
      nome_candidato[0];
      soma[0]++;
  }
  else {
      if (voto = 1){
         nome_candidato[1];
         soma[1]++;
      }
      else {
          if (voto = 2){
            nome_candidato[2];
            soma[2]++;
          }
          else {
            if (voto = 3){
              nome_candidato[3];
              soma[3]++;
            }
        }
      }
    }
    cout << "Insira o seu voto (Entre 0 e 3): ";
    cin >> voto;
  }
  cout << "O Numero de Votos do candidato: " << soma[0] << "seu nome: " << nome_candidato[0];
  
  
  
  
  system("pause");
  return 0;
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A condição do while está errada. O que estás a dizer é "enquanto o valor de voto for inferior a 0 ou superior a 3", quando o que pretendias era "enquanto o valor de voto for superior ou igual a 0 e inferior ou igual a 3"

Depois tens uma carrada de ifs. Se reparares, os valores que utilizas como índice dos arrays são iguais ao valor da variável voto

if(voto = 0){

      nome_candidato[0];

      soma[0]++;

  }

pelo que podes substituir TODOS os if/else pelas duas instruções que estão dentro de um bloco if, e em vez de colocares 0, 1, 2 ou 3 no índice, colocas a variável voto.

Não tenho a certeza do que pretendes fazer com a linha nome_candidato[0];, mas se queres imprimir o nome do candidato, assim não vai funcionar. Substitui por cout << nome_candidato[0]) << endl;, ou, se tiveste em atenção o parágrafo anterior, cout << nome_candidato[voto]) << endl; :D

Em seguida, só estás a mostrar os votos do candidato com índice 0. Precisas de uma linha destas

  cout << "O Numero de Votos do candidato: " << soma[0] << "seu nome: " << nome_candidato[0] << endl;

para cada candidato.

Finalmente, não te esqueças do 2º ponto: mostrar o nome do vencedor. Tens que percorrer o array soma e ver qual dos índices tem o maior valor.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

1 - Esse while vai trabalhar com todos os valores excepto os que tu queres.. Tens de usar a condição voto>=0 && voto<=3.

No entanto parece-me que a maneira que estruturaste isso não é a melhor..

2 - Os teus ifs estão todos mal. = é diferente de ==. O primeiro if vai ser sempre verdadeiro porque estás a atribuir, em vez de comparar.

3 - Em vez de usares estes ifs todos, se calhar era mais reading-friendly usares a estrutura switch.

4 - Só estás a mostrar o candidato associado ao indice 0. Usa um ciclo for para percorrer os 4 indices do vector.

Cumps. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora