兩個數實現交換的方法
阿新 • • 發佈:2019-02-16
一.1.給定兩個整數變數的值,將兩個值的內容進行交換(有臨時變數)
int main() { int a, b, c; scanf("%d%d", &a, &b); c = a; a = b; b = c; printf("%d\n%d\n", a, b); return 0; }
二.不允許有臨時變數
int main() { int a, b; scanf("%d%d", &a, &b); a = a + b; b = a - b; a = a - b; printf("%d\n%d\n",a, b); return 0; }
第二種方法的有侷限性,當兩個數的和超過儲存空間(溢位)時就不能正常輸出結果
三.按(二進位制)位異或
如: 011--a
101--b (對應異或,相同為0,相異為1)
按照:
a=a^b; 110
b=a^b; 011
a=a^b; 101
int main()
{
int a,b;
scanf("%d%d",&a,&b);
a=a^b;
b=a^b;
a=a^b;
printf("%d\n%d\n",a,b);
return 0;
}