Ir ao conteúdo
  • Cadastre-se

C C Funçaõ nao le o voto


Gabriel Lin

Posts recomendados

E ae pessoal estou aprendendo função porém esse código não lê o voto e consequentemente não computa o voto.

#include<stdio.h>
#include<conio.h>


int votos()
{
	int escolha;
	int lineu,agostinho,beicola,nene,tuco,bebel,marilda,paulao;
	printf("\n Escolha o personagem preferido"),
	printf("\n 1-lineu \n 2-agostinho \n 3-beicola \n 4-nene \n 5-tuco \n 6-bebel \n 7-marilda \n 8-paulao");
	scanf("%d",&escolha);
	return escolha;
}
int votos_2()
{
	int escolha;
	int lineu,agostinho,beicola,nene,tuco,bebel,marilda,paulao;

	if
	(escolha==1){
		lineu++;
	}
	else if
	(escolha==2){
		agostinho++;
		}
		else if
		(escolha==3){
			beicola++;
		}
		else if
		(escolha==4){
			nene++;
		}
		else if
		(escolha==5){
			tuco++;
		}
		else if
		(escolha==6){
			bebel++;
		}
		else if
		(escolha==7){
			marilda++;
		}
		else{
			(escolha==8);
			paulao++;
			
	}
}

int imprimir()
{

	int escolha;
	int lineu=0,agostinho=0,beicola=0,nene=0,tuco=0,bebel=0,marilda=0,paulao=0;
	printf("\n Votos do lineu : %d",lineu);	
	printf("\n Votos do beicola : %d",beicola);	
	printf("\n Votos do nene : %d",nene);
	printf("\n Votos do tuco : %d",tuco);
	printf("\n Votos do bebel : %d",bebel);
	printf("\n Votos do marilda : %d",marilda);
	printf("\n Votos do agostinho : %d",agostinho);
	printf("\n Votos do paulao: %d",paulao);
}




int main()
{
	votos();
	votos_2();
	imprimir();
	
}

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Boa tarde.

Nesse trecho:

int votos()
{
	int escolha;
	int lineu,agostinho,beicola,nene,tuco,bebel,marilda,paulao;
	printf("\n Escolha o personagem preferido"),
	printf("\n 1-lineu \n 2-agostinho \n 3-beicola \n 4-nene \n 5-tuco \n 6-bebel \n 7-marilda \n 8-paulao");
	scanf("%d",&escolha);
	return escolha;
}

Essa parte:

int lineu,agostinho,beicola,nene,tuco,bebel,marilda,paulao;

Não serve pra nada. O retorno será um número de 1 a 8. Essas variáveis com nome não serão usadas.

 

-----------------------------------------------------

 

Nesse trecho:

int votos_2()
{
	int escolha;
	int lineu,agostinho,beicola,nene,tuco,bebel,marilda,paulao;

	if
	(escolha==1){
		lineu++;
	}
	else if
	(escolha==2){
		agostinho++;
		}
		else if
		(escolha==3){
			beicola++;
		}
		else if
		(escolha==4){
			nene++;
		}
		else if
		(escolha==5){
			tuco++;
		}
		else if
		(escolha==6){
			bebel++;
		}
		else if
		(escolha==7){
			marilda++;
		}
		else{
			(escolha==8);
			paulao++;
			
	}
}

Você não sabe quem é a variável escolha. Então não tem como comparar com nenhum desses if else se ela está vazia.

 

--------------------------------------------------------------

 

 

Nesse trecho:

int imprimir()
{

	int escolha;
	int lineu=0,agostinho=0,beicola=0,nene=0,tuco=0,bebel=0,marilda=0,paulao=0;
	printf("\n Votos do lineu : %d",lineu);	
	printf("\n Votos do beicola : %d",beicola);	
	printf("\n Votos do nene : %d",nene);
	printf("\n Votos do tuco : %d",tuco);
	printf("\n Votos do bebel : %d",bebel);
	printf("\n Votos do marilda : %d",marilda);
	printf("\n Votos do agostinho : %d",agostinho);
	printf("\n Votos do paulao: %d",paulao);
}

 

Como você quer mostrar o valor dessas variáveis se você deu 0 pra todo mundo?

 

--------------------------------------------------------------

 

Dicas:

 

1 - A função votos_2() precisa passar como parâmetro o retorno da função votos().

2 - Declare essa família como variáveis globais. É aí que você inicializa em 0. Depois que elas forem incrementadas não faz nenhum sentido você colocá-las como 0 na impressão e querer que ela mostre outro número rsrs.

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Eu entendi que que votos_2() só serve para contabilizar o voto.

O voto será feito pelo votos().

 

Mas você compreendeu que as variáveis lineu e família precisam ser globais? E que elas não podem ser 0 antes de imprimir?

 

Dê uma olhada no código e me passe uma resposta mais completa do que uma frase simples.

Aguardo.

Link para o comentário
Compartilhar em outros sites

@Math.Pi sim isso eu entendi,o engraçado e que ele contabiliza o voto pro lineu porém ele coloca muitos numeros para os outros integrantes.

adicionado 5 minutos depois

@Math.Pi coloquei as variáveis globais e deu certo,achei que poderia declarar a variável dentro da função.

#include<stdio.h>
#include<conio.h>
	
	int escolha;
	int lineu,agostinho,beicola,nene,tuco,bebel,marilda,paulao;
	
int votos()
{


	printf("\n Escolha o personagem preferido"),
	printf("\n 1-lineu \n 2-agostinho \n 3-beicola \n 4-nene \n 5-tuco \n 6-bebel \n 7-marilda \n 8-paulao");
	scanf("%d",&escolha);

}
int votos_2()
{


	if
	
	(escolha==1){
	
		lineu++;
	}
	else if
	(escolha==2){
		agostinho++;
		}
		else if
		(escolha==3){
			beicola++;
		}
		else if
		(escolha==4){
			nene++;
		}
		else if
		(escolha==5){
			tuco++;
		}
		else if
		(escolha==6){
			bebel++;
		}
		else if
		(escolha==7){
			marilda++;
		}
		else{
			(escolha==8);
			paulao++;
			
	}
}

int imprimir()
{



	printf("\n Votos do lineu : %d",lineu);	
	printf("\n Votos do beicola : %d",beicola);	
	printf("\n Votos do nene : %d",nene);
	printf("\n Votos do tuco : %d",tuco);
	printf("\n Votos do bebel : %d",bebel);
	printf("\n Votos do marilda : %d",marilda);
	printf("\n Votos do agostinho : %d",agostinho);
	printf("\n Votos do paulao: %d",paulao);
}





int main()
{
	votos();
	votos_2();
	imprimir();
	getch();
	
	
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Muito bem.

Ele funciona. Agora você precisa aplicar um menu para que ele possa registrar mais de um voto.

Votos_2 não será int pois não terá retorno.

 

Sugestão para aprendizarem em passagem de parâmetro:

 

no main tente fazer isso:


	votos_2(votos()); // ele vai passar o valor retornado de votos()
	imprimir();

 

Lá em votos_2, inicie assim:

void votos_2(int escolha) //nesse caso a variável escolha só existe dentro de votos e votos_2, não sendo global.

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Crie uma função menu.

Dentro dessa função você faz um menu com if else ou com switch case igual a função votos(). Coloque lá: votar, mostrar resultados, sair, etc.

 

Nas demais funções você vai precisar chamar o menu antes do final de cada uma, para que retorne para o menu.

---------------------------------------------------------- ou --------------------------

 

Ou mais simples: Coloque um while dentro do votos(). Enquanto não ser digitado um número (tipo 0) ele vai continuar perguntando votos. Se digitar 0, ele sai da função e mostra a impressão.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá @Gabriel Lin.

 

Alguns pontos:

 

1) INDENTAÇÃO DE CÓDIGO

Sempre mantenha seu código indentado. Ex.:

#include<stdio.h>
#include<conio.h>

int escolha;
int lineu,agostinho,beicola,nene,tuco,bebel,marilda,paulao;
int votos()
{
	printf("\n Escolha o personagem preferido"),
	printf("\n 1-lineu \n 2-agostinho \n 3-beicola \n 4-nene \n 5-tuco \n 6-bebel \n 7-marilda \n 8-paulao");
	scanf("%d",&escolha);
}

int votos_2()
{
	if (escolha==1) {
		lineu++;
	} else if (escolha==2) {
		agostinho++;
	} else if (escolha==3) {
		beicola++;
	} else if (escolha==4){
		nene++;
	} else if (escolha==5) {
		tuco++;
	} else if (escolha==6) {
		bebel++;
	} else if (escolha==7) {
		marilda++;
 	} else {
	 	(escolha==8);
			paulao++;
	}
}

int imprimir()
{
	printf("\n Votos do lineu : %d",lineu);
	printf("\n Votos do beicola : %d",beicola);
	printf("\n Votos do nene : %d",nene);
	printf("\n Votos do tuco : %d",tuco);
	printf("\n Votos do bebel : %d",bebel);
	printf("\n Votos do marilda : %d",marilda);
	printf("\n Votos do agostinho : %d",agostinho);
	printf("\n Votos do paulao: %d",paulao);
}

int main()
{
	votos();
	votos_2();
	imprimir();
	getch();
}

 

Inclusive é possível aplicar outras técnicas para organizar ainda mais.

 

Ex.:

#include<stdio.h>
#include<conio.h>

int escolha;
int lineu,agostinho,beicola,nene,tuco,bebel,marilda,paulao;

int votos() {
	printf("\n Escolha o personagem preferido"),
	printf("\n 1-lineu \n 2-agostinho \n 3-beicola \n 4-nene \n 5-tuco \n 6-bebel \n 7-marilda \n 8-paulao");
	scanf("%d",&escolha);
}

int votos_2() {
	if (escolha==1) {lineu++;}
	else if (escolha==2) {agostinho++;}
	else if (escolha==3) {beicola++;}
	else if (escolha==4) {nene++;}
	else if	(escolha==5) {tuco++;}
	else if	(escolha==6) {bebel++;}
	else if	(escolha==7) {marilda++;}
	else if (escolha==8) {paulao++;}
}

int imprimir() {
	printf("\n Votos do lineu    : %d",lineu);
	printf("\n Votos do beicola  : %d",beicola);
	printf("\n Votos do nene     : %d",nene);
	printf("\n Votos do tuco     : %d",tuco);
	printf("\n Votos do bebel    : %d",bebel);
	printf("\n Votos do marilda  : %d",marilda);
	printf("\n Votos do agostinho: %d",agostinho);
	printf("\n Votos do paulao   : %d",paulao);
}

int main() {
	votos();
	votos_2();
	imprimir();
	getch();
}

Observe como deixei os if com uma linha, e alinhei o resultado dos votos.

 

 

 

2) ESTRUTURA DE SELEÇÃO

No seu código faltou o if para a opção 8. Nesse caso, qualquer voto diferente de 1 a 7 iria para "Paulão". O que seria um erro. (no segundo código acima já inclui)

 

Nesse sentido, daria para aproveitar para contabilizar os votos nulos, ou seja, de quem não votou em um candidato da relação... inseriria um else a mais (sem if, é claro).

 

 

 

3) NOMENCLATURA DAS FUNÇÕES

Por que para "imprimir os resultados" você usou imprimir() e para "leitura da opção do eleitor" e "processamento do voto" você usou voto() e voto_2?

 

Siga a mesma lógica, algo como:

int main() {
	leituraVoto();
	processamento();
	imprimir();
	getch();
}

 

 

 

4) ESTRUTURA DOS DADOS

Como os números são sequenciais, você poderia usar um vetor de 8 posição (0 a 7). Para acessar a posição, usaria "escolha-1". Algo como:

 

votos[escolha-1]++;

Lembrando que isso apenas para escolha entre 1 e 8 (inclusos). Os diferentes disso iria para "votosNulos".

 

Na hora de exibir os resultados, usaria a posição correspondente para cada vetor. (0 para o primeiro, 1 para o segundo etc)

 

 

 

***

 

Por ai vai.

 

No aguardo.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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