Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gustavo Rodrigues Torre

[Resolvido] Laço for 2

Recommended Posts

Este programa esta com um erro na hora de mostrar o valor menor.

Ele me mostra o valor contido na variavel menor.

Mais quando o programa vai me informar o maior valor digitado esta tudo certo.

Como corrigir este erro?

 

/*Menor e maior valor*/
# include<stdio.h>
# include<stdlib.h> 

int c;
int a,menor, maior;
main()

{ //Abertura do for
menor = -15;
maior = 0;
for (c=1;c<=10;c++)

{
printf("\n Entre com um valor: ");
scanf("%d",&a);


	   if (a < menor)
	   { 
	   menor = a;
	   }
	   
			 if (a > maior)
			 {
			 maior = a;
			 }
} // Fechamento do for

printf("\n\n O menor valor eh %d ",menor);
printf("\n\n O maior valor eh %d ",maior);
printf("\n\n");

system("pause");
return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro está na inicialização de menor.

Repare que ele está sendo inicializado com -15, então a troca só ocorrerá se voce digitar um número menor que -15.

Eu particularmente não gosto de inicializar com algum valor padrão nesses casos, prefiro assim:

 

printf("\n Entre com um valor: ");
scanf("%d",&a);

menor = a;
maior = a;

for (c=1;c<10;c++){
   printf("\n Entre com um valor: ");
   scanf("%d",&a);

   if (a < menor){ 
	   menor = a;
   }
	   
   if (a > maior){
	  maior = a;
   }
} // Fechamento do for

Assim voce assume o primeiro número como menor e maior.

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kandrade valeu pela dica

Eu vou compilar o código e vejo o que apresenta

Então to pegando o jeito do C?

 

 

O erro está na inicialização de menor.

Repare que ele está sendo inicializado com -15, então a troca só ocorrerá se voce digitar um número menor que -15.

Eu particularmente não gosto de inicializar com algum valor padrão nesses casos, prefiro assim:

 

printf("\n Entre com um valor: ");
scanf("%d",&a);

menor = a;
maior = a;

for (c=1;c<10;c++){
   printf("\n Entre com um valor: ");
   scanf("%d",&a);

   if (a < menor){ 
	   menor = a;
   }
	   
   if (a > maior){
	  maior = a;
   }
} // Fechamento do for

Assim voce assume o primeiro número como menor e maior.

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu Kandrade

Compilei o programa e deu tudo certo

Problema resolvido

Está sim, percebeu que a lógica não muda.

Esperamos o resultado então.

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Kandrade valeu pela dica

Eu vou compilar o código e vejo o que apresenta

Então to pegando o jeito do C?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.