定义一个带参数的宏,求出三个数中最大的一个数,并进行验证.

定义一个带参数的宏,求出三个数中最大的一个数,并进行验证.
1 书上有个用宏比较两个数大小的例子.但是怎么把比较三个数放在一个宏中?
2
3 以下是我写的 但是最后执行结果是输出了三次最大值.== 不过貌似main里面只有一个if else也是对的,写三个是罗嗦了.但是有没有什么方法可以使主函数中直接写成MAX(a,b,c)的形式啊?
#include
#define MAX1(a,b) ((a)>(b)?(a):(b))
#define MAX2(a,c) ((a)>(c)?(a):(c))
#define MAX3(b,c) ((b)>(c)?(b):(c))
void main()
{
if(MAX1(3,4)>MAX2(3,5))
cout
山qq曾 1年前 已收到1个回答 举报

liuxinyao 幼苗

共回答了13个问题采纳率:92.3% 举报

如下代码 注意三目运算符 可以是 => 表达式1?表达式2:表达式3
#define MAX1(a,b,c) ((a)>(b)?(a>c?a:c):(b>c?b:c))
int main(int argc,char* argv[])
{
int a = 5,
b = 4,
c = 6;
int i = MAX1(a,b,c);
return 0;
}

1年前

1
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.023 s. - webmaster@yulucn.com