在C语言中如何用标准宏定义实现计算两个参数中的最小值?

 我来答
蓝雨潇潇369
推荐于2019-09-09 · TA获得超过2264个赞
知道小有建树答主
回答量:1400
采纳率:100%
帮助的人:42.1万
展开全部

你可以用这三个眼睛操作符(?:)实现,定义,#定义最小(x,y) ((x)<(y)?(x) (y)),测试代码如下:

//程序功能实现,计算两个数字的最小值。

包括< stdio, h >。

定义最小(x, y) ((x) (y)?(x):(y))

Int main(Int argc, char *argv[])

{Int x = 10, y = 15;

Printf(" MIN(% d % d)= % d \ n”,x,y,MIN(x,y));

返回0;}

需要注意的是,宏定义是原始的替换,您需要确保替换的准确性,例如,

定义最小(x, y) (x < y?X:y),在这个定义之后,宏表达式可能看起来是一个问题,而不是期望的结果,例如下面的例子,它可以区分出不同,而编译器可能有不同的结果。

包括< stdio, h >。

定义MIN1 (x, y) (x < y?X,y)

定义MIN2 (x, y) ((x) (y)?(x):(y))

Int main(Int argc, char *argv[])

{Int x = 10, y = 15;

Printf(" MIN1(% d % d)= % d \ n ",x,y,MIN1(+ = 2 x,y));/ /输出MIN1 = 24 (24 (9)

X = 10;

Printf(" MIN2(% d % d)= % d \ n ",x,y,MIN2(+ = 2 x,y));/ /输出MIN2 = 14 (14,15)

返回0;

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式