1. 实现两个数的交换
方法一:创建一个变量
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a = 0;
int b = 0;
int temp = 0;
printf("请输入两个数:", a, b);
scanf("%d %d", &a, &b);
temp = a;
a = b;
b = temp;
printf("a=%d b=%d\n", a, b);
system("pause");
return 0;
}
方法二:不创建变量
(1)
(1)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a = 0;
int b = 0;
printf("请输入两个数:", a, b);
scanf("%d %d", &a, &b);
a = a + b;
b = a - b;
a = a - b;
printf("a=%d b=%d\n", a, b);
system("pause");
return 0;
}
缺点:如果这两数较大,可能会溢出。导致a!=a+b
(2)按位异或
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a = 0;
int b = 0;
printf("请输入两个数:", a, b);
scanf("%d %d", &a, &b);
//举例a=10,b=20,按位异或
//a 01010
//b 10100
//a=a^b=11110
//b=a^b=01010
//a=a^b=10100
a = a ^ b;
b = a ^ b;
a = a ^ b;
printf("a=%d b=%d\n", a, b);
system("pause");
return 0;
}