Fórum Ubuntu Linux - PT

Suporte Técnico => Programação e Scripts => Tópico iniciado por: Lucidcrow em 11 de Junho de 2012, 20:39

Título: Probleminha com função
Enviado por: Lucidcrow em 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);


}
Título: Re: Probleminha com função
Enviado por: irtigor em 11 de Junho de 2012, 21:10
Veja

Citar
mac = max(n1, n2);
printf(" o maior numero eh: %d\n", max);
Título: Re: Probleminha com função
Enviado por: Lucidcrow em 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!
Título: Re: Probleminha com função
Enviado por: cerebro em 13 de Junho de 2012, 13:14
Não sei como compilou, qdo eu faço algo assim não compila
Título: Re: Probleminha com função
Enviado por: irtigor em 13 de Junho de 2012, 17:30
"max" está definido, não faz o menor sentido não compilar.
Título: Re: Probleminha com função
Enviado por: sigur em 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?
Título: Re: Probleminha com função
Enviado por: irtigor em 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.