CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

请大家告诉我应该输出多少?

楼主tea78(点点)2002-01-07 10:33:08 在 C/C++ / C语言 提问

我有如下一段程序:  
  #include   <stdio.h>  
  #define   N   2  
  #define   M   N+1  
  #define   NUM   (M+1)*M/2  
  main()  
  {printf("%d",NUM);  
  }  
  请大家告诉我应该输出多少?并请说明原因。谢谢!  
      问题点数:20、回复次数:9Top

1 楼kingfish(工作很忙,很少来csdn...)回复于 2002-01-07 10:44:39 得分 8

这是用DEFINE定义宏的缺陷  
   
  #define   NUM   (M+1)*M/2  
  展开:  
                (2+1+1)*2+1/2  
              =8  
   
  如果非要用,多加括号  
  #define   N   2  
  #define   M   (N+1)  
  #define   NUM   (M+1)*M/2  
  Top

2 楼tea78(点点)回复于 2002-01-07 15:53:25 得分 0

谢谢你,不过怎么会这样呢?  
  既然是缺陷,怎么没有想办法补救呢?Top

3 楼GZCompiler(编译器)回复于 2002-01-07 16:11:22 得分 6

可以补救嘛,将定义改一下:  
  #define   N   2  
  #define   M   (N+1)  
  #define   NUM   ((M+1)*M/2)  
  Top

4 楼ZIPPO_TISEKI(zxd)回复于 2002-01-07 16:24:17 得分 0

嗯,思路清楚啊,佩服Top

5 楼rhesus(越堕落越快乐)回复于 2002-01-07 16:26:28 得分 3

#include   <stdio.h>  
  #define   N   2  
  #define   M   N+1  
  #define   NUM   ((M)+1)*(M)/2  
  main()  
  {printf("%d",NUM);  
  }  
  Top

6 楼steedhorse(晨星)回复于 2002-01-07 16:44:01 得分 3

NUM   =   (M+1)*M/2  
          =   (N+1+1)*N+1/2  
          =   (2+1+1)*2+1/2  
          =   4*2+1/2  
          =   8+0  
          =   8Top

7 楼no24wgh(老鬼)回复于 2002-01-07 17:16:57 得分 0

讨论这个好象意义不大,如果你敢在自己的工程中如此的滥用宏的话,我敢保证你会死得很难看。Top

8 楼lemon_wei(研究BT,做好P2P)回复于 2002-01-08 09:33:37 得分 0

应该是6  
  把M,N的   值的代入NUMTop

9 楼lswoyo(懒人码头)回复于 2002-02-03 10:33:33 得分 0

8Top

相关问题

  • 输出结果是多少
  • dll中输出类应该如实现?
  • 疑问?输出是多少?为什么?
  • 下面代码输出是多少?
  • 我想从上到下输出文字?应该怎么办
  • 在delphi中应该怎么输出web service(vs.Net) 方法参数
  • 请问System.out.println(str1==str4)输出的值是多少?
  • 怎么输出某年某月总共有多少天?
  • 请问这个程序的输出结果是多少?
  • java 中 月的多少号怎么输出啊 !郁闷

关键词

  • define
  • num

得分解答快速导航

  • 帖主:tea78
  • kingfish
  • GZCompiler
  • rhesus
  • steedhorse

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo