Ir ao conteúdo
  • Cadastre-se
Eduardotq16

C Problema exercício em C

Recommended Posts

Boa noite, estou com um problema para resolver um exercício de C.

No programa eu insiro idades de pessoas. Quanto insiro 0, o programa deve encerrar indicando: o número de pessoas, a idade média do grupo, a maior e menor idade.

Consegui fazer praticamente tudo, porém, sempre que eu encerro o programa com 0, ele registra este 0 como sendo a menor idade. Já tentei de várias formas, mas não consegui resolver este problema.

 

Segue o código. Se alguém souber dizer onde estou errando, agradeço!

 

#include<stdio.h>
#include<stdlib.h>
int main(){
	int cont,total,idade,menorIdade,maiorIdade;
	float media;
	idade=1;
	cont=0;
	total=0;
	maiorIdade=0;
	menorIdade=0;
	
	while(idade!=0){
		
		printf("Insira a idade: ");
		scanf("%d",&idade);
		
		if(idade!=0){
			
		if(idade!=0 && idade<menorIdade){
			menorIdade=idade;
		}
		else if(idade>maiorIdade){
			maiorIdade=idade;
		}
		total+=idade;
		cont++;
	}
	}
	
	media=total/cont;
	printf("Total de pessoas: %d\n",cont);
	printf("Media idade do grupo: %.2f\n",media);
	printf("Menor idade: %d\n",menorIdade);
	printf("Maior idade: %d\n",maiorIdade);
	system("pause");
	return 0;
}

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Eduardotq16     você precisa inicializar a variável menorIdade dentro do loop while com o valor da primeira idade digitada , assim  :

#include<stdio.h>
#include<stdlib.h>
int main(){
	int cont,total,idade,menorIdade,maiorIdade;
	float media;
	idade=1;
	cont=0;
	total=0;
	maiorIdade=0;
	/*menorIdade=0;*//* inicializar dentro do loop */
	
	while(idade!=0){
		
		printf("Insira a idade: ");
		scanf("%d",&idade);
		if(cont==0)menorIdade=idade;/* inicializa com o valor da primeira idade */
		if(idade!=0){
			
		    if(/*idade!=0 && */idade<menorIdade){/* não precisa pois já comparou antes */
			    menorIdade=idade;
		    }
		    else 
                if(idade>maiorIdade){
			        maiorIdade=idade;
		       }
		    total+= idade;
		    cont++;
	    }
	}
	
	media=total/cont;
	printf("Total de pessoas: %d\n",cont);
	printf("Media idade do grupo: %.2f\n",media);
	printf("Menor idade: %d\n",menorIdade);
	printf("Maior idade: %d\n",maiorIdade);
	system("pause");
	return 0;
}

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×