C代码结果解释

C代码结果解释,c,C,您好,有人能给我解释一下为什么在我运行程序时,这段代码会在命令提示符上显示(00 11 21 32 42) 代码如下: int main() { int x = 0; int y = 0; while (x < 5) { y = x - y; printf("%i%i ", x, y); x = x + 1; } return 0; } intmain() { int x=0; int y=0; 而(

您好,有人能给我解释一下为什么在我运行程序时,这段代码会在命令提示符上显示(00 11 21 32 42)

代码如下:

int main()
{
    int x = 0;
    int y = 0;
    while (x < 5) {
        y = x - y;
        printf("%i%i ", x, y);
        x = x + 1;
    }
    return 0;
}
intmain()
{
int x=0;
int y=0;
而(x<5){
y=x-y;
printf(“%i%i”,x,y);
x=x+1;
}
返回0;
}

谢谢。

程序循环5次,而
x
[0,4]
范围内,打印
x
y
的值
语句
y=x-y
告诉我们
y
的当前值将取决于
x
的当前值和
y
的先前值

                   x   y
x = 0  ==>  y = 0 (0 - 0)
x = 1  ==>  y = 1 (1 - 0)
x = 2  ==>  y = 1 (2 - 1)
x = 3  ==>  y = 2 (3 - 1)
x = 4  ==>  y = 2 (4 - 2)
第一次迭代:

x=0
y=0-0=0

第二:

x=1
y=1-0=1

第三:

x=2
y=2-1=1

第四:

x=3
y=3-1=2

第五:


x=4
y=4-2=2
在循环的每次迭代中,x增加1,y(第二位数字)是当前x减去前一个y的结果。

您不了解程序的哪一部分?试着玩电脑,在脑子里运行那个程序,这应该会告诉你为什么它会打印那个;相反,买一支铅笔和一张纸。有两列,一列称为x和y,并在loop@EdHeal你脑子里没有两个寄存器的空间吗D@JoeDF为什么,这与问题有什么关系?@ USE2222961如果你发现我的答案有用,请考虑点击投票计数下的绿色复选标记来接受答案。