Online Compiler C

#include <stdio.h> int main() { int a=10; int b=20; int temp; a=b; b=temp; temp=a; printf("%d\n",a,b); return 0; }
这段代码试图交换变量a和b的值,但逻辑顺序有误。当前代码先执行a=b,导致a的值被覆盖,然后又将未初始化的temp赋给b,最后temp=a只是把已经变成20的a赋给temp,没有实际交换效果。

- 交换两个变量的值,需要先保存其中一个变量的值到临时变量,然后再进行赋值。你的代码中,在a=b之前,应该先把a的值保存到temp中。
- printf函数只打印了第一个参数%d对应的a的值,第二个参数b不会被打印。如果想打印两个值,需要在格式字符串中写两个%d。