Publicidade

Entre para seguir isso  
Seguidores 0
Davyd Darlan

estrutura de repetição WHILE

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
Retirada a palavra "AJUDA" do Titulo ou Descrição
0

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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
0

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

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
Entre para seguir isso  
Seguidores 0