简单c语言小问题

如图,请解析一下答案的由来... 如图,请解析一下答案的由来 展开
 我来答
皮蛋工程师
2020-06-24 · 专注于跑步和软件的硬件工程师
皮蛋工程师
采纳数:5 获赞数:16

向TA提问 私信TA
展开全部

do循环程序段可以等效简化为:

do

{

    i=i+1;//(1)

    if(i%2!=0)

    {

        x=x+i;//(2)

        i=i+1;//(3)

    }

    y=y+i;//(4)

    i=i+1;//(5)

}while(i<=7)


do循环过程如下:

第一遍do循环中:

(1)式i=1

(2)式x=1

(3)式i=2

(4)式y=2

(5)式i=3

第二遍do循环中:

(1)式i=4

(2)式不执行

(3)式不执行

(4)式y=6

(5)式i=5

第三遍do循环中:

(1)式i=6

(2)式不执行

(3)式不执行

(4)式y=12

(5)式i=7

第四遍do循环中:

(1)式i=8

(2)式不执行

(3)式不执行

(4)式y=20

(5)式i=9

退出do循环。

结果x=1,y=20.

需要注意:

单个语句(i++;)、(++i;)均等价于(i=i+1;),

语句(y=y+i++;)等价于y和i相加后的值赋值给y,然后i再自增1

谢谢!望采纳!

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式