当前位置: 代码迷 >> C语言 >> [求助]百思无解!
  详细解决方案

[求助]百思无解!

热度:184   发布时间:2005-03-14 20:00:00.0
[求助]百思无解!

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

main() { int i; for(i=1;i<=NUM;i++) printf("%d\n",i); getch(); } 在以上题中的M应是3。为(M+1)*M不是12而是9???????请帮助!


----------------解决方案--------------------------------------------------------
还是宏定义的问题
按你这样定义  NUM=(M+1)*M=(N+1+1)*N+1=(2+1+1)*2+1=9
你的M应该这样定义  #define M (N+1)
这样  NUM=(M+1)*M=((N+1)+1)*(N+1)=12
宏定义的时候除非你是故意写成这样 不然最好都用括号括上
----------------解决方案--------------------------------------------------------
知道了,很感激你,谢谢!
----------------解决方案--------------------------------------------------------
考试就喜欢出这种题目!
----------------解决方案--------------------------------------------------------
  相关解决方案