黑马程序员技术交流社区
标题:
以下程序的运行结果是________。
[打印本页]
作者:
to_love
时间:
2015-8-29 21:41
标题:
以下程序的运行结果是________。
#include ”stdio.h”
main()
{
int a,b,c,d,e;
a=c=1;
b=20;
d=100;
if (!a) d=d++;
else if (!b)
if (d) d= --d;
else d= d--;
printf(”%d\n\n”, d);
}
嘛玩意?
作者:
wanghui001001
时间:
2015-8-29 22:44
啥都不是,你在哪找的题
作者:
wanghui001001
时间:
2015-8-29 22:47
可想问你你在哪找的题
作者:
flywithde
时间:
2015-8-29 23:25
还是等于100
作者:
同舟ing
时间:
2015-8-29 23:39
就是这道题求大神指教
作者:
aidan
时间:
2015-8-30 11:51
最后d = 99 ?
作者:
aidan
时间:
2015-8-30 11:56
敲到Xcode里面运行一下后发现。还是100.
作者:
yaochaoyang
时间:
2015-8-30 12:10
if (!a) d=d++;这能解释一下吗
作者:
jx836202365
时间:
2015-8-30 13:11
写的好不规范
作者:
jx836202365
时间:
2015-8-30 13:15
本帖最后由 jx836202365 于 2015-8-30 13:22 编辑
#include <stdio.h>
int main(){
int a,b,c,d,e;
a=c=1;
b=20;
d=100;
if (!a){ //!a为假,执行
d=d++;
}else if(!b){
if(d){
d = --d;
}
//----------------以上都是废话-------------------
}else{ //到这里才开始运行,d--赋值给d,d--是100,d虽然变成99但是
//接着又被赋值100,最终结果是100
d = d--;
}
printf("%d\n\n", d);//两个换行没必要吧
return 0;
}
复制代码
作者:
夜空守望者
时间:
2015-8-30 19:46
jx836202365 发表于 2015-8-30 13:15
你这if else 分层不对!最后的 else 和最近的 if 配对!
作者:
夜空守望者
时间:
2015-8-30 19:57
int a,b,c,d,e;
a=c=1;
b=20;
d=100;
if (!a){ //!a = 0 为假,所以 d = d++ 不执行
d=d++;
}else if(!b){ // !b = 0为假,所以后面括号内的 if 和 else 语句不会执行,直接来到后面的输出语句
if(d){
d = --d;
}else{
d = d--;
}
}
printf("%d\n\n", d);
return 0;
}
复制代码
作者:
夜空守望者
时间:
2015-8-30 19:59
代码写的不规范,再加上不知道 if 、else 配对使用的规则,使得无法正确分析除结果来
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2