编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛  
全能 ASP / PHP / ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
发新话题
打印

[求助]百思无解!

[求助]百思无解!

#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???????请帮助!

TOP

还是宏定义的问题
按你这样定义  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
宏定义的时候除非你是故意写成这样 不然最好都用括号括上
动于心而静如水

TOP

知道了,很感激你,谢谢!

TOP

考试就喜欢出这种题目!
是金子就一定会发亮吗?高手也需要低调!!!!

TOP

发新话题