| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 375 人关注过本帖
标题:看不懂的程序帮 我解释下
只看楼主 加入收藏
a307871404
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2007-6-19
收藏
 问题点数:0 回复次数:4 
看不懂的程序帮 我解释下
#include<stdio.h>
main()
{
int a=0,b=0,c=0,d=0,e=0;
/*1*/
{
a=b=(a==1);
}
/*2*/
{
a=b=(b==1&&c==0);
c=(c==1&&b==0);
}
/*3*/
{
c=d=(c==1);
}
/*4*/
{
a=b=e=(d==0);
a=b=d=!(d==1),d=!d;
a=b=d=e=!(d==1&&e==1),d=!d;
}
/*5*/
{
a=b=d=(e==1);
}
/*承上启下*/
{
a=b=c=!(d==1),c=!c;
b=e=(a==1);
}
printf("%d,%d,%d,%d,%d",a,b,c,d,e);
}声明:这是别人写的程序 ,程序正确就是红色部分我看不懂
搜索更多相关主题的帖子: 解释 
2007-06-30 13:17
谁与争疯
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:海南省
等 级:版主
威 望:191
帖 子:15071
专家分:17513
注 册:2007-4-22
收藏
得分:0 
! 是非

不为0,正数的,就是真
0的,就是假

!1 就是假
!0 就是真
有() 就先算
应该是这样理解,不知道有没有错!

论坛是我家灌水靠大家
2007-06-30 13:20
a307871404
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2007-6-19
收藏
得分:0 
2楼说的是没错 可我就是不理解能不能一句一句解释清楚点


我让我喜欢的人不开心     真没用
2007-06-30 13:42
我是菜鸟哦
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:921
专家分:209
注 册:2007-5-4
收藏
得分:0 
a=b=c=!(d==1),c=!c;/*总体是逗号语句,左向右运算;“a=b=c=!(d==1),--”先运行()内--问你d等于1吗,等于就返回1,否则0,再取!,最后!(d==1)得1或0,然后从右向左给a,b,c赋值就OK了
第二句c=!c同上将c先取!后的值给c。最后整体的返回值就是c的值(这里你应该知道赋值语句和逗号语句的返回值是什么,否则…………#·!!%—*(……*/
b=e=(a==1);


偶是菜鸟鸟偶惧WHO?!!!!
2007-06-30 19:19
qingyun_0922
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2007-6-28
收藏
得分:0 
你自己调试一下就知道,走到你那步的时候a=1,b=1,c=0,d=1,e=1
因为d==1成立,返回1,!以后变成0,所以a,b,c都付值为0,之后c=!c,把c变为1
以后类似,自己走一遍就明白了!
2007-06-30 19:53
快速回复:看不懂的程序帮 我解释下
数据加载中...
 
   



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

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