当前位置:首页 C++ > 正文

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
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击