当前位置: 代码迷 >> C语言 >> define 循环题
  详细解决方案

define 循环题

热度:1068   发布时间:2007-10-31 07:27:40.0
define 循环题
#define N 2
#define M N+1
#define NUM 2*M+1
#main()
{ int i;
for(i=1;i<=NUM;i++)printf("%d\n",i);
}
该程序中的for循环执行的次数是 为6 次!

我想问大家NUM 为什么是6,不是7啊?
NUM 2*M+1 不是应该是7吗??

求大家了!!


搜索更多相关的解决方案: define  

----------------解决方案--------------------------------------------------------
#define M N+1
相当于用N+1代替M
所以在 #define NUM 2*M+1 用N+1代替M,而不是用(N+1)代替M.
#define NUM 2*M+1 等价于 #define NUM 2*N+1+1 最后NUM为6;


----------------解决方案--------------------------------------------------------

正解,学习


----------------解决方案--------------------------------------------------------
Mum=2*n+1+1....
----------------解决方案--------------------------------------------------------

正确,学习了


----------------解决方案--------------------------------------------------------
谢谢各位了!!
----------------解决方案--------------------------------------------------------

在宏定义中,对变量的应用最好加上括号,这样就不容易出现错误了,
#define N 2
#define M N+1
#define NUM 2*M+1
改为:

#define N 2
#define M (N)+1
#define NUM 2*(M)+1


----------------解决方案--------------------------------------------------------
呵呵,又学到一题了!嘎嘎~~~~~~~~~~~~~~~
----------------解决方案--------------------------------------------------------
楼上上的是
define M (N)+1
还是
define M (N+1)
----------------解决方案--------------------------------------------------------
这个题中一样
不过平时应该是
define M (N)+1
----------------解决方案--------------------------------------------------------
  相关解决方案