Ir para conteúdo
Fórum Script Brasil
  • 0

Macro em C


Exata0mente

Pergunta

Bom dia!

Estou tendo uma baita dor de cabeça com esse exercício:

"Escreva uma macro que encontre o maior entre seus três argumentos."

 

O maior problema é que essa verificação, segundo o enunciado, deve ser nos três argumentos da macro.

 

#include <stdio.h>
#define MAIOR(a, b, c)  printf("%d %d %d", (a > b && b > c ? a, b, c : \
                                            (a > c && c > b ? a, c, b : \
                                                (b > a && a > c ? b, a, c : \
                                                    (b > c && c > a ? b, c, a : \
                                                        (c > b && b > a ? c, b, a : \
                                                            c, a, b))))))

int main(){

    int num1, num2, num3;

    scanf("%d%d%d", &num1, &num2, &num3);
    MAIOR(num1, num2, num3);

return 0;
}

 

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Bom dia Exata0mente, vou tentar ajudar com o seu problema, geralmente quando usamos "macros semelhantes a funcoes" assim como o nome já diz não se preocupamos com os printf e sim com o calculo para retornar o valor desejado, da uma olhada o codigo e ve se é isso q você queria.

Quando trabalhando com este tipo de macro, reescrever um equivalente com IF/ELSE pode ajudar na montagem do operador ternario.

Espero ter ajudado; GLHF

#include <stdio.h>

#define MAIOR(a, b, c) a > b ? a > c ? a : c : b > c ? b : c

/*O define de cima é refente ao codigo de baixo
if(a > b)
	if(a > c)
		return a;
	else
		return c;
else
	if(b > c)
		return b;
	else
		return c;
*/
	
int main()
{
	int a, b, c;
	scanf("%d %d %d", &a, &b, &c);
	
	printf("Maior: %d\n", MAIOR(a, b, c));
	
	return 0;
}

 

Editado por Nefisto
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,7k
×
×
  • Criar Novo...