在线编译器 C

#include <stdio.h> int main() { int a=10; int b=20; int temp; a=temp; temp=b; printf("%d\n %d\n ",a,b); return 0; }
这段代码试图交换两个变量a和b的值,但交换逻辑有错误。当前代码中,a被赋值为temp(未初始化的值),然后temp被赋值为b,但b的值从未被赋给a,a的值也从未被保存。

- 变量temp在使用前没有初始化,直接赋值给a会导致a得到不确定的值。
- 正确的交换需要先将a的值保存到temp,再将b的值赋给a,最后将temp的值赋给b。你的代码顺序颠倒了。