c语言问题,帮个忙,新手

[复制链接]
查看11 | 回复4 | 2012-9-23 14:18:38 | 显示全部楼层 |阅读模式
预定义,类似于替换M代替3N代替M+1NN代替N*N/2我们把N*N/2还原:M+1*M+1/23+1*3+1/2 = 3+3+0=6(1/2=0应该不难理解吧) 同理,5*NN=5*3+1*3+1/2=18这也是,为什么强调在宏定义的时候,单个变量也要用括号括起来的缘由。 额。。。。。网页打开,上个厕所回来,答案提交就发现已经有俩在先了。我算路过了吧...........
回复

使用道具 举报

千问 | 2012-9-23 14:18:38 | 显示全部楼层
因为NN宏定义为N*N/2, N又宏定义为M+1所以NN=N*N/2=M+1*M+1/2=3+1*3+1/2=3+3+0=65*NN=5*N*N/2=5*M+1*M+1/2=5*3+1*3+1/2=15+3+0=18...
回复

使用道具 举报

千问 | 2012-9-23 14:18:38 | 显示全部楼层
带运算符的宏定义要用括号括起来,这样结果才正确,你输出NN时,实际输出的是M+1*M+1/2,也就是3+1*3+1/2,结果当然为6...
回复

使用道具 举报

千问 | 2012-9-23 14:18:38 | 显示全部楼层
3+1*(3+1)/2得出的6;5*3+1*(3+1)/2得出的18...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行