Ir para o conteúdo

Publicidade

 Estatísticas do Fórum

  • 0 Usuários ativos

    0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

Cursos Online iMasters
Foto:

estrutura de repetição WHILE

  • Por favor, faça o login para responder
3 respostas neste tópico

#1 Davyd Darlan

Davyd Darlan
  • Membros
  • 7 posts

Postado 27 abril 2012 - 17:03

Olá pessoal! boa tarde, sou novo aqui no forum do Imaster sou estudante de sistema de informações e estou começando com à linguagem C++. Trago a vocês um probleminha que venho enfrentado com a estrutura de repitação WHILE. para começar criei um algoritmo para um problema no qual ele armazena 5 números e compara qual o maior e o menor dos números digitados. O que acontece é que estou trabalhando apenas com uma váriavel chamada número, e não compreendo como faço para comparar estes cinco números sendo que eu tenho apenas uma váriavel. Sei que a estrutura de repitição me fornece a possibilidade de está criado uma sequência de uma mesma ação desejada ex: digite um número, dai organizando tudo posso fazer com que essa mesma mensagem se repita várias vezes, fazendo com que o usuario possa digitar 5 números ou seja quanto for, mas não consigo encontrar uma forma para comparar esses cinco valores com apenas uma váriavel.

main()
{
int numero,x,menor=0,maior;
for(x=1;x<=5;x++)
{
printf("Digite um numero: ");
scanf("%d",&numero);
maior=numero;
menor=numero;
/* condicional */ if(numero>maior)
{
maior=numero;
}
if(numero<menor)
{
menor=numero;
}
}
printf("\n");
printf("O maior numero e: %d\n",maior);
printf("O menor numero e: %d",menor);
getch();
}

Desde já agradeço a todos que possam me ajudar a compreender este problema que venho infrentado, acredito que deve ser uma questão de semântica que estou tendo problema :unsure:

Editado por Mário Monteiro, 28 abril 2012 - 09:01 .
Retirada a palavra "AJUDA" do Titulo ou Descrição

  • 0

#2 Israel Laurensi

Israel Laurensi
  • Membros
  • 3 posts

Postado 27 abril 2012 - 18:40

Davyd, não entendi se você se confundiu ou sei lá, mas a estrutura de repetição que você está usando é FOR, e não WHILE.
O seu código como um todo está quase certo. O erro acontece dentro da estrutura de repetição quando você diz que a variavel MAIOR e MENOR recebem o número digitado. Fazendo isso você estara sempre dizendo para o computador que o maior é aquele numero, o mesmo acontece com o menor.

Segue o código com a implementação correta:

main () {
int numero, x, menor, maior;
	
        // Maior recebe 0, assim o primeiro numero que o usuario digitar sera considerado o maior, e depois para os numeros seguintes, a verificação sera feita tendo este como base, e não mais o 0
	maior = 0;

        // Mesma coisa acontece com o menor, mas ao inves de receber 0, ele recebe um numero alto para que o primeiro seja menor que este ...
	menor = 99999;
	
	for (x = 1; x <= 5; x++) {
		printf("Digite um numero: ");
		scanf("%d", &numero);
		
		if (numero >= maior) {
			maior = numero;
		} 
		
		if (numero <= menor) {
			menor = numero;
		}
	}
	
	printf("\n");
	printf("O maior numero e: %d\n",maior);
	printf("O menor numero e: %d",menor);
}

Espero que você tenha entendido. Abraços.
  • 0

#3 GBecker

GBecker
  • Membros
  • 468 posts

Postado 27 abril 2012 - 18:59

Israel,

No seu código. Nos primeiros números digitados maior e menor serão iguais.
Talvez uma estrutura:
if(CONDIÇÃO) {

}else {

}

Fosse uma solução mais adequada. Ou utilizar um vetor de int para armazenar os valores e processá-los mais tarde.

Davyd,

O código que você postou é C e não C++. Embora sejam compatíveis, as duas linguagens tem grandes diferenças.

E uma dica, quando postar códigos use a
TAG CODE
assim irá manter a identação do código e a sua organização. Facilitando para que outros usuários do forum posso ajudá-lo.

Espero ter ajudado, FLW! :grin:

Editado por GBecker, 28 abril 2012 - 00:21 .

  • 0

#4 Davyd Darlan

Davyd Darlan
  • Membros
  • 7 posts

Postado 30 abril 2012 - 12:07

Vlw pessoal suas dicas foram muito importantes ficaram muito bem claras! Agradeço à ajuda de todos! tenha um bom dia! :clap: Ah realmente me confundi com a estrutura de repetição While, na verdade coloquei for mesmo! Israel Laurensi, e GBecker é verdade mesmo ainda tenho que me familiarizar com o que é c e c++ as diferenças são minimas mas de suma importância pra mais a frente não evitar fúturos erros.
  • 0




Publicidade

/ins>