Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
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
Postado (editado)

@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);
}

 

Editado por devair1010

Compartilhar este post


Link para o post
Compartilhar em outros sites
Postado (editado)

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

Editado por F1rmeza
  • 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
Postado (editado)
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

Editado por F1rmeza
  • 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






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

×