网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
02月23日
漏签
0
天
c语言吧
关注:
798,689
贴子:
4,348,620
看贴
图片
吧主推荐
视频
游戏
11
回复贴,共
1
页
<<返回c语言吧
>0< 加载中...
求解,“当”型简单程序,为什么还能运行呢?
只看楼主
收藏
回复
q278115103
酱油
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
#include<stdio.h>
void main()
{int a=1,b=2,c=2,t;
while(a<b<c)
{ t=a;
a=b;
b=t;
c--;
}
printf("%d,%d,%d",a,b,c);
}
问题 1:while(a<b<c)中的 “a<b<c”是如何定义或者说,明显不成立,为什么还能运行呢?
我的理解是,只有当“a<b<c”成立,即为真的时候,才会运行程序啊 ?
问题2:即使运行了程序,c 的初始值是 2,自减后(c--)结果应该是 1啊,为什么是 0?
在visual c++ 6.0 运行的结果是 1 , 2 , 0
顶之座__赫卡特
马猴烧酒
14
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
数学上是a<b<c这么写,C程序中不能这样,而是a<b && b<c
公子迅
团子家族
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
a<b<c
先算a<b
结果是0、1(真假值),这里得1
再算(a<b) < c
亦即1 < c , 这里为真,所以是1
所以...
q278115103
酱油
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
是啊,我郁闷啊,这是原文,而且在 visual c++ 6.0 上运行没问题啊 !跪求大神们指教啊
公子迅
团子家族
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
第一次,如3楼,...然后c=1
第二次,a、b互换,a<b为假(0)
所以0 < c (c为1)依然是真!
所以继续进入循环....
q278115103
酱油
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
大哥,我懂了,那第二个问题呢 ?
谢谢了 ............已粉 !
公子迅
团子家族
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
c自减了2次,就是0了....
这程序,思想上是不对的
但是编译器有自己的一套理解......
q278115103
酱油
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
嗯,我懂了。就是说程序循环了两次!
谢谢 啦
公子迅
团子家族
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
q278115103
酱油
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
是我没学懂 while(a<b<c),呵呵,听大哥这么一解说,我就知道了!嗯么,亲一个先....鸡冻啊 (
声明:我不搞基的 )
公子迅
团子家族
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
拒!绝!搞!J!
q278115103
酱油
4
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示