c語言 2個整數的交換 用兩個變數來實現
第1種 常規的方法 藉助於中間變數t來實現。
#include<stdio.h>
int main()
{
int a,b,t;
printf("請輸入兩個整數:");
scanf("%d%d",&a,&b);
t=a;
a=b;
b=t;
printf("交換後兩個整數為:%d %d\n",a,b);
return 0;
}
第2中 加法 與 乘法 僅用2個變數來實現
#include<stdio.h>
int main()
{
int a,b;
printf("請輸入兩個整數:");
scanf("%d%d",&a,&b);
a=a+b;
b=a-b;
a=a-b;
printf("交換後兩個整數為:%d %d\n",a,b);
return 0;
}
乘法與其類似 只需要 稍微改動一下即可
#include<stdio.h>
int main()
{
int a,b;
printf("請輸入兩個整數:");
scanf("%d%d",&a,&b);
a=a*b;
b=a/b;
a=a/b;
printf("交換後兩個整數為:%d %d\n",a,b);
return 0;
}
第3種 用異或來實現兩個變數的交換
^異或運算子 :兩個數相同為0,不同為1 ,且當一個數異或上2次相同的數後,原數不變,就是說4^5^5其結果還是4
#include<stdio.h>
int main()
{
int a,b;
printf("請輸入兩個整數:");
scanf("%d%d",&a,&b);
a=a^b;
b=a^b;
a=a^b;
printf("交換後兩個整數為:
return 0;
}
本人,也是一名剛學習計算機的在校大學生,想盡量把老師上課講的知識整理下來,方便以後自己來看,如果有什麼不正確的地方,歡迎指出。
最後呢,老師還提到了一種藉助於位移運算子的方法,但是自己還不是特別瞭解就沒有寫上,不過這個程式碼我給記下來了,主要的程式程式碼是b=(_int64)((_int64)a<<32|(a=b))>>32;如果有興趣的可以寫寫看看啦。