| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 734 人关注过本帖
标题:小程序,大问题
只看楼主 加入收藏
小试牛刀1989
Rank: 1
来 自:中国南宁
等 级:新手上路
帖 子:26
专家分:0
注 册:2010-3-12
结帖率:90.91%
收藏
已结贴  问题点数:10 回复次数:9 
小程序,大问题
   Question1
  #include <stdio.h>
     main()
     {int x=2;
      while(x--);
      printf("%d\n",x);
     }           运行结果怎么会是-1啊? 百思不得其解,愚人恳求详解。谢谢
  
    Question2
   #include <stdio.h>
   #define MIN(x,y)  (x)<(y)?(x):(y)
   main()
  {  int i,j,k;
     i=10,j=15,k=10*MIN(i,j);printf("%d\n",k);     答案不是100吗?怎么会是15啊,帮帮我吧!
  }

搜索更多相关主题的帖子: include 
2010-03-19 16:31
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
收藏
得分:5 
1:当x == 0 时, (x--) == 0,之后x的值为-1;
2. 10*(10)<(15)?(10):(15)-->100 < 15 ? 10 : 15 --> 15 宏是纯文本替换
2010-03-19 16:39
mikelr
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:67
专家分:161
注 册:2010-3-17
收藏
得分:3 
Question1
  #include <stdio.h>
     main()
     {int x=2;
      while(x--);  //注意这里有个分号
      printf("%d\n",x);
     }      
 当 x=0时 while(x--);
 由于条件为假,退出循环。 x进行了自减,所以 得出 -1.


 Question2
   #include <stdio.h>
   #define MIN(x,y)  (x)<(y)?(x):(y)
   main()
  {  int i,j,k;
     i=10,j=15,k=10*MIN(i,j);printf("%d\n",k);     答案不是100吗?怎么会是15啊,帮帮我吧!
  }
  k = 10 * (10) < (15) ? (10) : (15); //注意优先级
  k = 100 < 15 ? 10 : 15;
 所以 k = 15
2010-03-19 16:41
emtx
Rank: 1
等 级:新手上路
帖 子:1
专家分:2
注 册:2010-3-18
收藏
得分:2 
Question1
 #include <stdio.h>
     main()
     {int x=2;
      while(x--);   由于你这里多了一个分号,它运行到x等于0时,即while(0),此时逃出while指令,x再自减1,此时x变成-1!!
      printf("%d\n",x);
     }
 如果你把while指令后面的那个分号删掉了,运行结果就应该是你所想要的了!!!!你试试
Question2
   #include <stdio.h>
   #define MIN(x,y)  (x)<(y)?(x):(y)
   main()
  {  int i,j,k;
     i=10,j=15,k=10*MIN(i,j);printf("%d\n",k);     
  }
你这样写的结果肯定是100,因为你k=10*MIN(i,j)这句展开后就等于k=10*(10)<(15)?(10):(15),,,,即100<15?10:15,,你说这怎么可能输出的不是15呢?不是才怪呢
修改:
把k=10*MIN(i,j)改为k=10*(MIN(i,j))即可
2010-03-19 16:53
lingyunhappy
Rank: 2
等 级:论坛游民
帖 子:40
专家分:45
注 册:2010-3-8
收藏
得分:0 
这也是我容易出现的问题,受教了!
2010-03-20 09:32
kunman
Rank: 1
等 级:新手上路
帖 子:2
专家分:3
注 册:2010-3-20
收藏
得分:0 
又是优先级问题
2010-03-20 11:59
wuhaoxust
Rank: 1
等 级:新手上路
帖 子:8
专家分:5
注 册:2010-1-7
收藏
得分:0 
我第二个差点也错了
2010-03-20 16:13
小试牛刀1989
Rank: 1
来 自:中国南宁
等 级:新手上路
帖 子:26
专家分:0
注 册:2010-3-12
收藏
得分:0 
谢谢各位了!不过我就要没有可用分了!
2010-03-20 19:40
zl12010605
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-3-7
收藏
得分:0 
第二个的优先级问题,很容易弄错啊
2010-03-20 21:10
shaojie519
Rank: 2
等 级:论坛游民
帖 子:12
专家分:21
注 册:2009-7-31
收藏
得分:0 
有意思
2010-03-20 21:46
快速回复:小程序,大问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024413 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved