Eqwer 发表于 2020-8-14 16:02:53

求这个C程序的计算思路

#include<stdio.h>
int main(){
        int x=10,y=20,z=30;
        if(x>y)   z=x;x=y;y=z;
        printf("%d,%d,%d\n",x,y,z);
}

答案是20,30,30!

可是不知道是如何计算出来的!

求思路

zltzlt 发表于 2020-8-14 16:05:25

这个程序实际上是这样:

#include <stdio.h>
int main()
{
    int x = 10, y = 20, z = 30;
    if (x > y)
      z = x; // 因为 x 大于 y 条件不成立,所以不执行这一句
    x = y;   // 将 y 的值 20 赋值给 x
    y = z;   // 将 z 的值 30 赋值给 y
    printf("%d,%d,%d\n", x, y, z); // 所以打印出 20,30,30
}

baige 发表于 2020-8-14 16:05:44

就这两条语句执行x=y;y=z;

Eqwer 发表于 2020-8-14 16:08:36

zltzlt 发表于 2020-8-14 16:05
这个程序实际上是这样:

太感谢了{:9_228:}

Eqwer 发表于 2020-8-14 16:10:20

baige 发表于 2020-8-14 16:05
就这两条语句执行x=y;y=z;

谢谢,因为zltzlt回复的早所以答案最佳给了zltzlt!
页: [1]
查看完整版本: 求这个C程序的计算思路