Online Compiler C

#include <stdio.h> int main() { int a=10; int b=20; int temp=0; temp=a; b=a; printf("%d\n %d\n ",a,b); return 0; }
这段代码试图交换两个变量a和b的值,但只完成了部分交换。代码将a的值保存到temp中,然后将a赋给b,但缺少了将temp(原a的值)赋给a的步骤,导致a和b最终都变成了原a的值10。

- 检查交换逻辑:交换两个变量需要三步,你只做了两步。思考一下,在将a的值赋给b之后,a原来的值还存在吗?它被保存在哪里?
- 观察输出结果:当前代码输出a和b都是10。如果交换成功,a应该是20,b应该是10。想想哪一步遗漏了。