Ir ao conteúdo

Posts recomendados

Postado

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
Postado

@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

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!