C/C++ 使用四种方法实现交换两个数
作者:野牛程序员:2023-07-02 07:27:48 C++阅读 2735
在 C/C++ 中,有多种方法可以交换两个数的值。以下是四种常见的方法:
方法一:使用第三个变量进行交换
void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int num1 = 10;
int num2 = 20;
printf("Before swap: num1 = %d, num2 = %d\\n", num1, num2);
swap(&num1, &num2);
printf("After swap: num1 = %d, num2 = %d\\n", num1, num2);
return 0;
}方法二:使用加法和减法进行交换
void swap(int* a, int* b) {
*a = *a + *b;
*b = *a - *b;
*a = *a - *b;
}
int main() {
int num1 = 10;
int num2 = 20;
printf("Before swap: num1 = %d, num2 = %d\\n", num1, num2);
swap(&num1, &num2);
printf("After swap: num1 = %d, num2 = %d\\n", num1, num2);
return 0;
}方法三:使用异或运算进行交换
void swap(int* a, int* b) {
*a = *a ^ *b;
*b = *a ^ *b;
*a = *a ^ *b;
}
int main() {
int num1 = 10;
int num2 = 20;
printf("Before swap: num1 = %d, num2 = %d\\n", num1, num2);
swap(&num1, &num2);
printf("After swap: num1 = %d, num2 = %d\\n", num1, num2);
return 0;
}方法四:使用指针进行交换
void swap(int** a, int** b) {
int* temp = *a;
*a = *b;
*b = temp;
}
int main() {
int num1 = 10;
int num2 = 20;
int* ptr1 = &num1;
int* ptr2 = &num2;
printf("Before swap: num1 = %d, num2 = %d\\n", *ptr1, *ptr2);
swap(&ptr1, &ptr2);
printf("After swap: num1 = %d, num2 = %d\\n", *ptr1, *ptr2);
return 0;
}这些方法都可以实现交换两个数的值,选择使用哪种方法取决于具体的需求和编程环境。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:c++指针实现两个数交换
- 下一篇:C++变量声明和定义有什么区别
