Probleminha com função

Iniciado por Lucidcrow, 11 de Junho de 2012, 20:39

tópico anterior - próximo tópico

Lucidcrow

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!


#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);


}

irtigor

Veja

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

Lucidcrow

Citação de: irtigor online 11 de Junho de 2012, 21:10
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!

cerebro

Não sei como compilou, qdo eu faço algo assim não compila
By Cerebro Vasconcelos

irtigor

"max" está definido, não faz o menor sentido não compilar.

sigur

Citação de: irtigor online 13 de Junho de 2012, 17:30
"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?

irtigor

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.