Ir para conteúdo

POWERED BY:

Arquivado

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

Marcus Vinicius_164297

Comparações

Recommended Posts

Olá amigos este e meu primeiro tópico e já estou pedindo ajuda :pinch: .

e o seguinte, tenho esse problema em mãos :

(ler cinco valores numéricos inteiros, identificar e apresentar o maior e o menor valor informados. não execute a ordenação dos valores.)

 

Eu fiz este código aqui mais não esta dando certo, vocês poderiam me ajudar?

 

#include<stdio.h>
int main(void)
{
   int num1;
   int num2;
   int num3;
   int num4;
   int num5;
   int maior;
   int menor;

   printf("Favor digitar 5 numeros inteiros\n");
   scanf("%d%d%d%d%d",&num1,&num2,&num3,&num4,&num5);

   if (num1>num2)
   {
   maior == num1;
   menor == num2;
   }
   else
   {
   maior == num2;
   menor == num1;
   }
   if (num1>num3)
   {
   maior == num1;
   menor == num3;
   }
   else
   {
   maior == num3;
   menor == num1;
   }
   if (num1>num4)
   {
   maior == num1;
   menor == num4;
   }
   else
   {
   maior == num4;
   menor == num1;
   }
   if (num1>num5)
   {
   maior == num1;
   menor == num5;
   }
   else
   {
   maior == num5;
   menor == num1;
   }
    if (num2>num3)
   {
   maior == num2;
   menor == num3;
   }
   else
   {
   maior == num3;
   menor == num2;
   }
   if (num2>num4)
   {
   maior == num2;
   menor == num4;
   }
   else
   {
   maior == num4;
   menor == num2;
   }
   if (num2>num5)
   {
   maior == num2;
   menor == num5;
   }
   else
   {
   maior == num5;
   menor == num2;
   }
   if (num3>num4)
   {
   maior == num3;
   menor == num4;
   }
   else
   {
   maior == num4;
   menor == num3;
   }
   if (num3>num5)
   {
   maior == num3;
   menor == num5;
   }
   else
   {
   maior == num5;
   menor == num3;
   }
   if (num4>num5)
   {
   maior == num4;
   menor == num5;
   }
   else
   {
   maior == num5;
   menor == num4;
   }
   printf(" O Maior Numero e %d, e o Menor Numero e %d \n",maior,menor);  


   system("pause");
   return 0;
}

 

vlw desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigos este e meu primeiro tópico e já estou pedindo ajuda :pinch: .

e o seguinte, tenho esse problema em mãos :

(ler cinco valores numéricos inteiros, identificar e apresentar o maior e o menor valor informados. não execute a ordenação dos valores.)

 

Eu fiz este código aqui mais não esta dando certo, vocês poderiam me ajudar?

#include<stdio.h>
int main(void)
{
   int num1;
   int num2;
   int num3;
   int num4;
   int num5;
   int maior;
   int menor;

   printf("Favor digitar 5 numeros inteiros\n");
   scanf("%d%d%d%d%d",&num1,&num2,&num3,&num4,&num5);

   if (num1>num2)
   {
   maior == num1;
   menor == num2;
   }
   else
   {
   maior == num2;
   menor == num1;
   }
   if (num1>num3)
   {
   maior == num1;
   menor == num3;
   }
   else
   {
   maior == num3;
   menor == num1;
   }
   if (num1>num4)
   {
   maior == num1;
   menor == num4;
   }
   else
   {
   maior == num4;
   menor == num1;
   }
   if (num1>num5)
   {
   maior == num1;
   menor == num5;
   }
   else
   {
   maior == num5;
   menor == num1;
   }
    if (num2>num3)
   {
   maior == num2;
   menor == num3;
   }
   else
   {
   maior == num3;
   menor == num2;
   }
   if (num2>num4)
   {
   maior == num2;
   menor == num4;
   }
   else
   {
   maior == num4;
   menor == num2;
   }
   if (num2>num5)
   {
   maior == num2;
   menor == num5;
   }
   else
   {
   maior == num5;
   menor == num2;
   }
   if (num3>num4)
   {
   maior == num3;
   menor == num4;
   }
   else
   {
   maior == num4;
   menor == num3;
   }
   if (num3>num5)
   {
   maior == num3;
   menor == num5;
   }
   else
   {
   maior == num5;
   menor == num3;
   }
   if (num4>num5)
   {
   maior == num4;
   menor == num5;
   }
   else
   {
   maior == num5;
   menor == num4;
   }
   printf(" O Maior Numero e %d, e o Menor Numero e %d \n",maior,menor);  


   system("pause");
   return 0;
}

vlw desde já agradeço.

 

Marcus Vinicius_164297,

 

Há primeira vista, se isto "menor == num4;" é para ser uma atribuição está errado.

 

o operador "==" só é utilizado para comparações entre valores. Para realizar atribuições use o operador "=".

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcus Vinicius_164297,

 

Há primeira vista, se isto "menor == num4;" é para ser uma atribuição está errado.

 

o operador "==" só é utilizado para comparações entre valores. Para realizar atribuições use o operador "=".

ok muito obrigado, vou verificar meu codigo :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Renato, a chamada acima não gera UB, já que o valor de cada variável não é lido, e sim o valor de seus endereços (&foo ao invés de foo).

 

Marcus, sugiro que implemente as mesmas funcionalidades usando laços de repetição.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Argh, eu sempre me confundindo com essas coisas...

 

Mas caso tiver algum problema no scanf() e ele não ler do stdin, não se sabe o que a variável terá, não é? Eu aprendi que a standard não definia o que acontecia aí... estou errado?

 

 

 

Araços :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo. É por isso que se deve verificar o valor de retorno, que no caso de scanf indica o número de matches. Pode ser que a leitura de algum dos valores não aconteça (independente de a leitura ser feita de stdin ou não).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então guidjos, foi esse o problema com o scanf() que eu apontei, até onde eu sabia isso era UB...

 

 

 

Abraços :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Renato:

 

Outra coisa, enviar variáveis não inicializadas para o scanf() é UB. Inicialize elas antes.

 

 

Ele não passa variáveis não-inicializadas para scanf. Ele passa o endereço de variáveis não-inicializadas.

 

O problema a que estou me referindo ocorreria após o retorno de scanf, e se ele tentasse usar o valor de alguma das variáveis não inicializadas pela função.

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.