首页 > 用户发贴区 > 编程问题提问区 > 不明白……关于Y*Z/2(已经解决)
2008
04-01

不明白……关于Y*Z/2(已经解决)

代码如下:
#include<stdio.h>
#define X 5
#define Y X+1
#define Z Y*X/2
main()
{
  int a;
  a=Y;
  printf(“%d %d\n”,Z,–a);//就是这个Z的输出不明白。
}

我在Microsoft Visual Studio来编译的。
程序理解,但是后面的Z的值的输出不大明白。

开始看的时候,以为是15,谁知道,它输出的7。

*和/分别是乘和除吧。5*6/2=15,怎么错了呢?
请问下是怎么回事?

谢谢。


不明白……关于Y*Z/2(已经解决)》有 4 条评论

  1. daxia4540827 说:

    Y=X+1 ;

    Y*X/2=5+1*5/2=5+2=7

  2. 幻海之涛 说:

    如楼上所示

    Y是X+1 而不是 (X+1)哦

  3. chliju123 说:

    #define Z Y*X/2  

    这里错误,应该这样定义

    #define Z ((Y)*X/2)否则系统将会这样计算

    5+1*5/2=5+2=7!

  4. L.Y.Bin_1986 说:

    谢谢大家了,已经明白。

留下一个回复