C语言求助
#include<stdio.h>#define MIN(x,y) (x)<(y)?(x):(y)
main()
{
int i,j,k;
i=10;
j=15;
k=10*MIN(i,j);
printf("%d\n",k);
}
为什么结果是15,怎么看都是100呀看了好久实在想不出来求大佬赐教 根据你的代码
k=10*MIN(i,j);
等价于
k = 10 * i < j ? i : j;
所以k为j define 转换后k=10*(i)<(j)?(i):(j)
逻辑本来就有问题了,慎用define,要用就完全用括号包起来#define MIN(x,y) ((x)<(y)?(x):(y)) 是这么回事受教了
页:
[1]