C语言编写程序交换两数
时间: 2024-08-13 19:09:42 浏览: 49
c代码-2.功能:不用第三个变量,实现两个数的对调操作。
在C语言中,交换两个整数变量的值可以使用临时变量或者不使用额外存储空间的方法。这里提供两种常见的方法:
**方法一:使用临时变量**
```c
#include <stdio.h>
void swap(int* a, int* b) {
int temp;
temp = *a; // 将a的值暂存到temp
*a = *b; // 把b的值赋给a
*b = temp; // 把temp的值赋给b
}
int main() {
int x = 5, y = 10;
printf("Before swap: x = %d, y = %d\n", x, y);
swap(&x, &y); // 传递变量地址
printf("After swap: x = %d, y = %d\n", x, y);
return 0;
}
```
**方法二:不使用临时变量(位运算)**
```c
#include <stdio.h>
void swapWithoutTemp(int* a, int* b) {
*a = *a ^ *b; // 使用异或操作交换数值,不会改变原始值
*b = *a ^ *b; // 再次异或恢复原始的*a
*a = *a ^ *b; // 最后一次异或将*b的值赋给*a
}
int main() {
int x = 5, y = 10;
printf("Before swap: x = %d, y = %d\n", x, y);
swapWithoutTemp(&x, &y);
printf("After swap: x = %d, y = %d\n", x, y);
return 0;
}
```
这两种方法都可以有效地在C语言中交换两个整数的值。
阅读全文