Autor Tópico: Probleminha com função  (Lida 2194 vezes)

Offline Lucidcrow

  • Usuário Ubuntu
  • *
  • Mensagens: 8
    • Ver perfil
Probleminha com função
« Online: 11 de Junho de 2012, 20:39 »
Boa noite pessoal! Aqui estou eu estudando para aumentar minha humilde e fraca bagagem na programação, mais me deparei com um probleminha, não sei se é de sintaxe... ele compila, só que ao inves de retornar o maior numero ele retorna 4195764 não importa quais sejam os numeros  ??? desde já agradeço!


Código: [Selecionar]
#include <stdio.h>


int max(int n1, int n2)
{
if (n1>n2)
return n1;
else
return n2;
}
main()
{
int n1,n2,mac;
printf("escreve dois numeros: \n");
scanf("%d%d", &n1, &n2);
mac = max(n1, n2);
printf(" o maior numero eh: %d\n", max);


}
« Última modificação: 11 de Junho de 2012, 21:22 por Lucidcrow »

Offline irtigor

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.344
  • Delete, delete, delete!
    • Ver perfil
Re: Probleminha com função
« Resposta #1 Online: 11 de Junho de 2012, 21:10 »
Veja

Citar
mac = max(n1, n2);
printf(" o maior numero eh: %d\n", max);

Offline Lucidcrow

  • Usuário Ubuntu
  • *
  • Mensagens: 8
    • Ver perfil
Re: Probleminha com função
« Resposta #2 Online: 11 de Junho de 2012, 21:22 »
Veja

Citar
mac = max(n1, n2);
printf(" o maior numero eh: %d\n", max);

Deus...  ;D por isso que todo mundo fala pra diferenciar bem as coisas. valeu!

Offline cerebro

  • Usuário Ubuntu
  • *
  • Mensagens: 19
  • Liberdade!
    • Ver perfil
Re: Probleminha com função
« Resposta #3 Online: 13 de Junho de 2012, 13:14 »
Não sei como compilou, qdo eu faço algo assim não compila
By Cerebro Vasconcelos

Offline irtigor

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.344
  • Delete, delete, delete!
    • Ver perfil
Re: Probleminha com função
« Resposta #4 Online: 13 de Junho de 2012, 17:30 »
"max" está definido, não faz o menor sentido não compilar.

Offline sigur

  • Usuário Ubuntu
  • *
  • Mensagens: 1.176
    • Ver perfil
Re: Probleminha com função
« Resposta #5 Online: 13 de Junho de 2012, 19:37 »
"max" está definido, não faz o menor sentido não compilar.

Desculpe me intrometer, nem sei de qual linguagem estão falando, mas apenas uma pergunta, baseada na sua resposta: max é uma função, certo? Não dá erro colocar a função, ou mandar imprimir, sem passar as variáveis?

Offline irtigor

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.344
  • Delete, delete, delete!
    • Ver perfil
Re: Probleminha com função
« Resposta #6 Online: 13 de Junho de 2012, 20:23 »
Depende da linguagem, o gcc verificou se a coisa estava definida (valia qualquer coisa: função, variável...), se estivesse no formato de função (faltou parêntesis) ele também verificaria a quantidade de argumentos.

Não deu erro na execução porque em C a tipagem é fraca, ele avaliou max do jeito que deu e mostrou uma representação decimal disso.