一、引入临时变量,从而达到交换目的。
#include<stdio.h>
int main()
{
int a=3;
int b=5;
int c=0;
printf("交换前:a=%d b=%d",a,b);
c=a;
a=b;
b=c;
printf("交换后:a=%d b=%d",a,b);
return 0;
}
二、引入函数,从而达到交换目的,本质与“一”一样。
#include<stdio.h>
void swap(int x,inty)
{
int n=0;
n=x;
x=y;
y=n;
}
int main()
{
int a=3;
int b=5;
printf("交换前:a=%d b=%d",a,b);
swap(a,b);
printf("交换后:a=%d b=%d",a,b);
return 0;
}
三、按(二进制)位异或运算,不引入临时变量。
#include<stdio.h>
int main()
{
int a=3;
int b=5;
printf("交换前:a=%d b=%d",a,b);
a=a^b;
b=a^b;
a=a^b;
printf("交换后:a=%d b=%d",a,b);
return 0;
}
四、加减运算,但要考虑整型溢出的问题。
#include<stdio.h>
int main()
{
int a=3;
int b=5;
printf("交换前:a=%d b=%d",a,b);
a=a+b;
b=a-b;
a=a-b;
printf("交换后:a=%d b=%d",a,b);
return 0;
}