C语言高手进来帮帮忙

main(){inty=10do{y--;}while(--y);printf("%d\n",y--);}答案是什么,麻烦详细点我初学者~... main()
{
int y=10
do{y--;}while(--y);
printf("%d\n",y--);
} 答案是什么,麻烦详细点我初学者~
展开
 我来答
zhaohuiox
2011-01-06 · TA获得超过896个赞
知道答主
回答量:13
采纳率:0%
帮助的人:18万
展开全部
0。
解释一下:开始y=10,循环开始,do{y--;}每次执行时做。y--可以写成y=y-1。然后判断条件
while(--y) 其中--y可以写成y=y-1(每次循环一遍y都要减2,判断条件中的y前要被重新赋值即y=y-1后的值,非0继续执行)。
(注:y--与--y有区别。
例如 y--
y=1;
printf("%d",y--)‘;这个答案是1,在执行过程中y--将分成2个语句来执行,先执行打印y,即先打印1,在执行y=y-1;如果你在后面在加一句printf("%d",y);那么y此时就等于0了。
--y
y=1;
printf("%d",--y);这个答案是0,在执行过程中--y也将分成2个语句来执行,它是先执行y=y-1后,在执行printf("%d",y)。
所以说,--在前表示先减在做其它语句,如果--在后表示先做其它语句在自减。如果是单独的一句y--;或--y;那么两句实现的功能是一样的。

while{--y},当y在做完y=y-1工作后,再判断y的值,如果y=0(false),那么就停止循环。
在执行最后一条printf前y已经为0,但在执行printf时先打印的是 y,即0, 在去运算y--在程序运行完以后,y的终值是-1。
上海勤革
2024-10-18 广告
Golang程序员在准备面试时,可以参考多个在线刷题平台来提高编程能力和解题技巧。虽然没有具体的网址,但常见的刷题网站通常会提供丰富的算法题库、在线编程环境以及详细的题目解析。通过不断练习,Golang程序员能够加深对常用数据结构和算法的理... 点击进入详情页
本回答由上海勤革提供
遮天灬傲屹
2011-01-06 · 超过25用户采纳过TA的回答
知道答主
回答量:89
采纳率:0%
帮助的人:65.9万
展开全部
答案是0,但最终y是-1
当y循环到2是do{y--;}后y=1
while(--y)(为0,不再循环)此时y=0
打印时,先使用y值再自减,所以答案是0,但最终y是-1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
傻不溜秋38
2011-01-06
知道答主
回答量:11
采纳率:0%
帮助的人:0
展开全部
答案:0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
咸天晴w
2011-01-06 · 超过23用户采纳过TA的回答
知道答主
回答量:115
采纳率:0%
帮助的人:66.2万
展开全部
答案是0。
y--是先取y的值,再令y减一。
--y是先令y减一,再取y的值。
while()里的值减到0的时候循环停止,所以执行完循环,y=0。
打印时先打印y,再令y减一,所以最后输出y=0,但之后y=-1。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式