交換兩個數的內容。
1.1創建臨時變量
(1)創建變量直接使用
#include <stdio.h>
int main()
{
int a=10;
int b=20;
int t;
t=a;
a=b;
b=t;
printf("a=%d,b=%d\n",a,b);
return 0;
}
(2)創建臨時變量,函數調用
#include <stdio.h>
void swap(int *a, int *b);
int main()
{
int a = 10;
int b = 20;
swap(&a,&b); //函數調用
printf("a=%d,b=%d\n",a,b);
return 0;
}
void swap(int *a, int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
1.2 不需創建臨時變量
(1) 異或
#include <stdio.h>
int main()
{
int a=5; //0101
int b=3; //0011
a=a^b; //0110
b=a^b; //0101
a=a^b; //0011
printf("a=%d\nb=%d\n",a,b);
return 0;
}
(2)加減法
#include <stdio.h>
int main()
{
int a=10;
int b=20;
a=a+b;
b=a-b;
a=a-b;
printf("a=%d\nb=%d\n",a,b);
return 0;
}
注:一般不用加減法,可能會發生溢出。