Ir para o conteúdo
bwolf

[C++] Ajuda: Elaborar uma funcção que devolve o maior valor de 2 argumentos

Mensagens Recomendadas

Hipnoted    6
Hipnoted

main()
{
int a=0;
int b=0;

scanf("%d\n",&a);
scanf("%d\n",&b);

if(a>b){
   printf("a maior que b");
}
else{
   if(a<b){
      printf("a menor que b");
   }
   else{
      printf("sao iguais");
   }
}
}

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
brink@ero    0
brink@ero

Benvindo ao fórum bwolf

Da próxima tens de ser mais explícito na tua dúvida, vejo aqui vários post desnecessários só para os leitores compreenderem a tua dúvida.

Uma função que devolve o maior valor é simples de fazer e se conheceres a instrução:

<condição>?<se verdadeira>:<se falsa>

Ainda mais simples se torna ficando tudo numa instrução só:

int int_maior( int x, int y)
{
    return (x>y) ? x : y;
}

Cumpr. bk@ero  :)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Rui Carlos    311
Rui Carlos

visto que estamos em C++, fica aqui outra sugestão com templates

template <typename T>
T maior(T x,T y)
{
  return (x>y)?x:y;
}

desta forma temos uma função que serve para qualquer tipo de dados (desde que tenha o operador '>' definido).

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Hipnoted    6
Hipnoted

Rui Carlos e brink@ero, e se forem iguais? Não há uma forma de fazer como vós fizeste no caso dos dois números serem iguais?

PS: Eu dei aquela resposta mas percebo pouco de C++, mas como tudo o que é C se pode meter em C++ decidi postar... :)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Rui Carlos    311
Rui Carlos

Rui Carlos e brink@ero, e se forem iguais? Não há uma forma de fazer como vós fizeste no caso dos dois números serem iguais?

PS: Eu dei aquela resposta mas percebo pouco de C++, mas como tudo o que é C se pode meter em C++ decidi postar... :)

não percebi muito bem a tua questão...

se os números forem iguais a função devolve o y (pois x não é maior do que y), o que está correcto visto que o x é igual ao y.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
brink@ero    0
brink@ero

Rui Carlos e brink@ero, e se forem iguais? Não há uma forma de fazer como vós fizeste no caso dos dois números serem iguais?

PS: Eu dei aquela resposta mas percebo pouco de C++, mas como tudo o que é C se pode meter em C++ decidi postar... :)

Por acaso já passou isso pela cabeça quando precisei de fazer a função á uns tempos atras :P.

O que interessa é devolver o maior valor! Se são iguais devolve um deles, não interessa qual, porque são ambos os maiores :thumbsup:.

Para verificar se são iguais ou não cria-se outra com esse funcionalidade.

Em quase todas as linguagens de programação tem esta instrução "maior" e ao colocares valores iguais, ela devolve o mesmo, pois é esta a sua funcionalidade!

Se não seria mais do tipo "maior-se-difente" ou algo parecido.

Cumpr. bk@ero  :)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade