在线编译器 C

#include <stdio.h> int main() { int a=10; int b=20; int temp=0; a=temp; temp=b; printf("%d\n %d\n ",a,b); return 0; }
这段代码试图交换变量a和b的值,但逻辑有误。目前代码执行后,a被赋值为0(temp的初始值),b被赋值为20(temp被赋值为b),而a原来的值10丢失了。

- 交换两个变量的值需要三个步骤:先将a的值保存到temp,再将b的值赋给a,最后将temp中保存的原a值赋给b。你的代码顺序不对,导致a的值被覆盖。
- 注意赋值语句的方向:等号右边表达式的值赋给左边变量。检查你的代码中每一步赋值是否正确实现了交换逻辑。