Ir para conteúdo

Arquivado

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

Luis360

Função Return

Recommended Posts

Pessoal me ajude em uma duvida neste codigo,ele funciona certo mas na hora de retornar a quatidade de votos para o candidato ele retorna sempre um para os tres, oque devo fazer para retornar certo.

#include<iostream>

using namespace std;

int eleicao(int v[],int elem)
{
	int c,cd1=0,cd2=0,cd3=0;

	for(c = 0 ; c < elem ; c++ )
	{
		switch( v[c] )
		{
			 case 1:   cd1++;
			           return (cd1);
			  break;
			 case 2:  cd2++;
					  return (cd2);
			  break;
			 case 3:   cd3++;
			           return (cd3);
			  break;
			 default: cout<<"Opção Inválida"<<endl;
		}

	}


}

main()
{
	int voto[5],cont,r;


setlocale(LC_ALL,"portuguese");


	for(cont = 0 ; cont < 5 ; cont++ )
	{
		cout<<"Escolha um candidato abaixo:\n1 - Candidato\n2 - Candidato\n3 - Candidato"<<endl;
		cin>>voto[cont];
      system("cls");
	}

	r = eleicao(voto,5);
	cout<<"Quantidade de votos para 1º Candidato = "<<r<<endl;
	cout<<"Quantidade de votos para 2º Candidato = "<<r<<endl;
	cout<<"Quantidade de votos para 3º Candidato = "<<r<<endl;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que a função tem que fazer?

O que é "voto[]"? Se é o local onde são contados os votos, não tem que retornar um contador separado, e sim o valor que está na posição desejada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A função deveria retornar a quantidade de votos que as 5 pessoas votaram nos seus candidatos,porem quando a função é chamada e executada ela me retorna 1 voto para cada candidato mesmo eu escolhendo votar 5vezes em 1 só,não entendo o pq ela não me retorna correto, pois eu fiz isso sem função e deu certo, e não entendi oque quis dizer "não tem que retornar um contador separado, e sim o valor que está na posição desejada."

Compartilhar este post


Link para o post
Compartilhar em outros sites

A lógica da função está errada, não chega a varrer todo vetor. Só lê a primeira posição, incrementa o contador e retorna.

Por isso sempre retorna um voto.

 

Para retornar vários valores, você pode utilizar parâmetro por ponteiro.

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.