c语言for语句解答

main{intx10,y=10,i;for(i=0;x>8;y=++i)printf("%d%d",x--,y);这个怎么做啊,输出是x的只还是x--的啊?自己才学c,... main{intx10,y=10,i; for(i=0;x>8;y=++i) printf("%d %d",x--,y);这个怎么做啊,输出是x的只还是x--的啊?自己才学c,讲详细点啊。。。【答案为什么是10 10 9 1】 展开
 我来答
wogaogu
2011-11-26 · TA获得超过147个赞
知道答主
回答量:36
采纳率:0%
帮助的人:34.1万
展开全部
首先你要理解++x与x++的区别
举个例子x=10,y=x++的作用是先将x赋值给y,x再加1,这里的y等于10;
而y=++x的意思是,先x加1,再将x的值赋值给y,这里的y等于11。
再看你的程序,第一次循环:输出x--和y,这里先输出x的值,再减去1,所以输出的值为10,第一次循环y=++i还未执行,所以y也仍为10,所以输出结果为 10 1
第二次循环: 经过第一次循环的计算,这里的x已经是9,所以输出为9,而y的值经过y=++i(++i的值为1,上面我说过区别了)之后已经变成1,所以输出的结果为 9 1
如有疑惑欢迎楼主追问
jaybestwang
2011-11-26 · TA获得超过4106个赞
知道小有建树答主
回答量:940
采纳率:0%
帮助的人:693万
展开全部
循环判断条件是x>8,第一次进入循环打印出x y的值10 10,然后执行x--,x=9,y=1;
第二次进入后继续打印x y 这时是9 1,然后是x=8,y=2;第三次x>8不成立,结束循环
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
卧石大春绿
2011-11-26
知道答主
回答量:36
采纳率:0%
帮助的人:51.6万
展开全部
x--是后置增量运算符也就是说x--先在表达式中表达x本身的值然后自身再减一,一开始x和y都是10所以输出10 10(x-先表达10再减一变成9)因为i=0;x>8先判断后再执行 printf("%d %d",x--,y)之后再执行y=++i(++是前置增量运算符,即先把i加1然后再在表达式中表示出i的值,在这里就是1
),所以第二次循环中x的值为9 y为1,x再减一变成8后循环条件x>8变为假就跳出循环不再显示x y 的值了

有哪里不明白的可以追问
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1415392261
2011-11-26
知道答主
回答量:16
采纳率:0%
帮助的人:12.9万
展开全部
for(i=0;x>8;y=i++) printf("%d %d",x--,y);相当于for(i=0;x>8;y=i++) {printf("%d %d",x,y);x--;}所以应该是先输出x的值,然后让x自减1.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友64d5b96
2011-11-26 · TA获得超过129个赞
知道小有建树答主
回答量:118
采纳率:0%
帮助的人:83.3万
展开全部
你好,你那个开始是不是x=10?如果是的话,printf中有两个变量,x--和y,所以每次输出的是两个值,也就是说:前两个数10和10,分别是x--和y所表示的值;而后两个数9和1是经过了一次for循环后,x--和y的值。输出的自然是x--,这是因为“--”这个运算符的性质决定的,当“--”在变量后,即如你的题中所示时,“x--”表示先输出x的值,然后对x进行减1的运算。而当这个符号是在变量前时,即形如“--x”所示时,表示先对x进行减1运算,再取减1后的x的值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cf0609
2011-11-26 · 超过18用户采纳过TA的回答
知道答主
回答量:87
采纳率:0%
帮助的人:42万
展开全部
在调试模式下看看每个数据的值,就知道是怎么回事了。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式