永发信息网

有懂C语言的嗎?

答案:5  悬赏:40  手机版
解决时间 2021-04-28 03:41

#include<stdio.h>
void main()
{
int x=10,y=10,i;
for(i=0;x>8;y=++i)
printf("%d %d ",x--,y);
}

這個問題 似乎不是很難但答案與我算的 完全不符~ 我的答案是10 1 9 2

电脑运行的答案是10 10 9 2

爲什麽哪?


最佳答案

一开始

x等于10,y等于10

当i等于0时,printf时因为是x--所以x为10,y为10,然后y=++i,i等于1,y等于1此时x为9

继续i等于1时,x为9大于8循环继续,printf时x为9,y为1,然后y=++i,i等于2,y等于2,此时x为8

8>8不满足,循环结束

输出为 10 10 9 1

如果你想输出10 1 9 2 的话,程序如下:

#include<stdio.h>
void main()
{
int x=10,y=1,i;
for(i=1;x>8;y=++i)
printf("%d %d ",x--,y);
}

全部回答

for循环的执行是这样的,for(i=0;i>8;y=++i)首先执行i=0,再判断条件i>8,接着执行循环体(条件成立)。也就是printf();语句。执行完循环体后,再到y=++i;部分,再次判断条件i>8…………,如此下来!!

我怎么感觉是10 10 9 1

for(i=0;x>8;y=++i) 第一次判断是:x=10>8,然后执行循环体内,输出x=10,y=10,后x=9,y=10

第二次判断是:y=++i=1,x=9>8,执行循环体,输出x=9,y=1,后x=8,y=1

第三次判断是:y=++i=2, x=8,不执行循环体,结束

所以应该是10 10 9 1

for(i=0;x>8;y=++i) 这一句里的y=++i在第一步的时候不运行

当运行到printf("%d %d ",x--,y);后才运行y=++i;

你已经把x初始化了,不可能大于8的,所以不执行循环

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
加战队了,起名字
新都龙桥小学-龙桥中心幼儿园地址在什么地方
为什么我的电脑不行了
武汉及周边城市哪有卖汽车遮阳伞的
请问专家们,问问专家是高级就能当?不需要品
公益协会成立贺词,成立物业协会的具体操作流
为什么我玩QQ飞车、CF、DNF。都是防沉迷啊?
梦幻西游HS还魂孩子怎么养啊,谁能给个养育的
什么才是生活‘该怎么样过啊
八三年农历二月二十一是什么星座
喜欢一个人有那么难吗?
PLC控制系统能用DSP做吗
如何办网银?
江苏省南京市高淳公证处在什么地方啊,我要过
步步高i 508手机山寨版与正版有什厶不同
推荐资讯
桂林有多少棵桂花树?
下市直街地址在哪,我要去那里办事
怎样下载免费空间播放器
WOW XD 学什么专业技能最适合?
怎样吃洋葱才能降血压
我爱你的时候你说什么是什么、我不爱你的时候
蒲家墩村这个地址在什么地方,我要处理点事
大家帮忙看下这个女的是谁
唐老鸭与米老鼠是什么公司出版的?
深夜食堂里富有哲理的话
CF高爆手雷最多只能买一个月的吗?
什样才能提高我的物理的成绩?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?