第一次尝试
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
void NoTempChange(int* a, int* b) {
*a = *a ^ *b;
*b = *a ^ *b;
*a = *a ^ *b;
}
void NoTempChange1(int* a, int* b) {
*a = *a + *b;
*b = *a - *b;
*a = *a - *b;
}
int main() {
printf("请输入两个数:");
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
//NoTempChange(&a, &b);
NoTempChange1(&a, &b);
printf("a=%d\nb=%d", a, b);
return 0;
}
交换两个数,且不使用临时变量,那么我现在掌握的方法有两种:
- 用异或的方法来交换两个数
- 用加减的方法来交换两个数