Online Compiler C

#include <stdio.h> int main() { int a,b; scanf("%d%d",&a,&b); a=b; b=a; printf("a=%d\n",a); printf("b=%d",b); return 0; }
这段代码试图交换两个变量的值,但逻辑有误。它先将a赋值为b,此时a和b都等于原来的b,然后再将b赋值为a,实际上b没有变化,因此两个变量最终都等于原来的b,原来的a丢失了。

- 交换两个变量的值需要借助一个临时变量来保存其中一个值,否则直接赋值会覆盖原有数据。
- 思考一下:在 `a = b;` 执行后,原来的a值去了哪里?如何避免丢失它?