2 qq 29290003 qq_29290003 于 2015.06.25 01:00 提问

c语言一个小题目,菜鸟求解。

#include
#define Hello(x) x/(x-1)
void main()
{
int a=1,b=2;
printf("%d \n",Hello(a-b));
}
程序的输出是2,但是-1/(-2)的结果不是应该为0么?所以我不知道为什么结果为2,求解答。

3个回答

u010677834
u010677834   2015.08.04 19:35

printf("%d \n",Hello(a-b));// a-b/(a-b-1) = 1-2/(1-2-1) = 1 + 1 = 2

u010677834
u010677834   2015.08.04 19:37

想要得到你希望的结果,可以加一个括号,printf("%d \n",Hello((a-b)));//(a-b)/((a-b)-1) = -1/-2 = 0

chao56789
chao56789   2017.09.27 18:24

你少了个括号 在你的宏定义里面

Csdn user default icon
上传中...
上传图片
插入图片