电脑网络

如何解答这个代码

346 浏览

如何解答这个代码

1 个回答

starred用户头像
starred 回答于 2024-07-20
已采纳

提问:如何解答这个代码

#include "stdafx.h"int _tmain(int argc, _TCHAR* argv[]){int y=2,a=1;while(y--!=-1)do{a*=y;a++;}while(y--);printf("%d,%d\n",a,y);

网友回答:

你是要结果?结果为

1,-2

也就是a=1,y=-2

解析

首先while(y--!=-1)

初始y=2,它不为-1,所以循环成立,且

y=y-1=1

进入do循环

a*=y; a=a*y=1*1=1

 a++;  a=a+1=2;

判while(y--);

y=1所以循环成立,且y=y-1=0

重新进入do

a*=y; a=a*y=2*0=0

a++,a=a+1=1

再判判while(y--);

此时y==0,循环退出,且y=y-1=-1

再次进入

while(y--!=-1)循环

因为y==-1,所以循环退出,且y=y-1=-2

所以最终

a=1,y=-2

我来回答

相关问题