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】
展开
6个回答
展开全部
首先你要理解++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
如有疑惑欢迎楼主追问
举个例子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
如有疑惑欢迎楼主追问
展开全部
循环判断条件是x>8,第一次进入循环打印出x y的值10 10,然后执行x--,x=9,y=1;
第二次进入后继续打印x y 这时是9 1,然后是x=8,y=2;第三次x>8不成立,结束循环
第二次进入后继续打印x y 这时是9 1,然后是x=8,y=2;第三次x>8不成立,结束循环
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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 的值了
有哪里不明白的可以追问
),所以第二次循环中x的值为9 y为1,x再减一变成8后循环条件x>8变为假就跳出循环不再显示x y 的值了
有哪里不明白的可以追问
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你好,你那个开始是不是x=10?如果是的话,printf中有两个变量,x--和y,所以每次输出的是两个值,也就是说:前两个数10和10,分别是x--和y所表示的值;而后两个数9和1是经过了一次for循环后,x--和y的值。输出的自然是x--,这是因为“--”这个运算符的性质决定的,当“--”在变量后,即如你的题中所示时,“x--”表示先输出x的值,然后对x进行减1的运算。而当这个符号是在变量前时,即形如“--x”所示时,表示先对x进行减1运算,再取减1后的x的值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在调试模式下看看每个数据的值,就知道是怎么回事了。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询