Ir ao conteúdo
  • Cadastre-se
F1rmeza

C Como pegar a menor altura?

Recommended Posts

Olá,

Estou com dúvida em um exercício da faculdade em que eu preciso ler a altura de 10 pessoas e mostrar a menor entre elas. Não estou conseguindo pensar em um jeito de conseguir armazenar a menor altura.

Exercício:

Citação

Faça um algoritmo que apresenta a menor altura entre 10 pessoas, usando apenas a repetição enquanto (While).

 

Meu Código:

	//Autor: Caio Villar Rocha
	//Lista: 3
	//Exercício: 3
	
#include <locale.h>
main (){
setlocale(LC_ALL, "portuguese");

	//Variáveis
	int contador, controle = 10;
	
	//Corpo
	while (contador != controle)
	{
		printf("| Informe a altura da %iª pessoa: ", controle);
		scanf("%i", altura);
		if ()
	}
	
	return(0):
}

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@F1rmeza    seu código está bom,  faltou apenas comparar as alturas,  então seu código ficaria assim :

/*  Autor     : Caio Villar Rocha
    Lista     : 3
    Exercício : 3    */
#include <stdio.h>
#include <locale.h>
int main (){
	/*//Variáveis*/
	int menor,contador=0,controle = 10,altura;
	setlocale(LC_ALL,"");
	/*//Corpo*/
	while (contador != controle)
	{
		printf("| Informe a altura da %dª pessoa: ", contador+1);
		scanf("%d",&altura);
		if(contador == 0)menor=altura;
		if(menor > altura)menor = altura;
		contador++;
	}
	printf("\nA Menor Altura eh %d\n\n",menor);
	return(0);
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@devair1010

 

9 minutos atrás, devair1010 disse:

@F1rmeza    seu código está bom,  faltou apenas comparar as alturas,  então seu código ficaria assim :


/*  Autor: Caio Villar Rocha
	Lista: 3
	Exercício: 3    */
#include <stdio.h>
#include <locale.h>
int main (){
	/*//Variáveis*/
	int menor,contador=0,controle = 10,altura;
	setlocale(LC_ALL,"");
	/*//Corpo*/
	while (contador != controle)
	{
		printf("| Informe a altura da %dª pessoa: ", controle);
		scanf("%d",&altura);
		if(contador == 0 || menor > altura)menor = altura;
		contador++;
	}
	printf("\nA Menor Altura eh %d\n\n",altura);
	return(0);
}

 

 

Então, testei aqui mas não deu muito certo. Segue a screenshot anexada.

 

 

Screenshot_42.png

 

 

Preciso arranjar um jeito de pegar o menor valor independente se a pessoa for a 5ª, 10ª, 3ª pessoa, mas não estou conseguindo achar um método para isso. Ele ta armazenando os valores inseridos tudo na mesma variável e apagando os valores anteriores, consequentemente pegando apenas o último valor.

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@F1rmeza   tem razão não testei o suficiente e estava com um erro pois havia colocado a variável altura no lugar de menor lá no final, então editei e corrigi a postagem ali em cima ,  copie novamente e teste .

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
4 minutos atrás, devair1010 disse:

@F1rmeza   tem razão não testei o suficiente e estava com um erro pois havia colocado a variável altura no lugar de menor lá no final, então editei e corrigi a postagem ali em cima ,  copie novamente e teste .

 

Funcionou! Obrigado. Agora vou tentar entender o raciocínio. 

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@F1rmeza    a lógica ali é que ele vai pegar a primeira altura e guardar na variável menor e  depois  ele vai verificando se cada altura entrada é menor que o valor da variável menor e se for então coloca esse menor valor na variável menor  .

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
10 minutos atrás, devair1010 disse:

@F1rmeza    a lógica ali é que ele vai pegar a primeira altura e guardar na variável menor e  depois  ele vai verificando se cada altura entrada é menor que o valor da variável menor e se for então coloca esse menor valor na variável menor  .

 

Genial! Brigadão. ;)

adicionado 5 minutos depois
10 minutos atrás, devair1010 disse:

@F1rmeza    a lógica ali é que ele vai pegar a primeira altura e guardar na variável menor e  depois  ele vai verificando se cada altura entrada é menor que o valor da variável menor e se for então coloca esse menor valor na variável menor  .

 

Uma coisa que ainda estou confuso é com 

 

if (contador == 1 || menor > altura) menor = altura;

 

no caso, segue esse raciocínio? se (contador for igual a 1 ou menor for maior que altura) menor recebe o valor da variável altura;

 

Esse seria o raciocínio? Porque depois de contador for igual a 1 tem o "ou (||)" dizendo que se menor for maior que altura, mas como isso? menor não teve um valor atribuído, apenas a altura.

 

Faz diferença eu trocar o "||" por "&&"? porque no meu raciocínio está assim

se (contador == 1 e(&&) menor > altura) menor = altura;

 

@devair1010

  • 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

×