C語言---交換兩個數的內容(谷歌面試題)


                                          交換兩個數的內容

1、給定兩個整型變量,將兩個值的內容進行交換

#include <stdio.h>
#include <stdlib.h>
int main()

{
int a = 3;
int b = 4;
int c = 0;
c = a;
a = b;
b = c;
printf("a=%d\nb=%d\n",a,b);
system("pause");
return 0;
}

2、不允許創建臨時變量,交換兩個數的內容。

#include <stdio.h>
#include <stdlib.h>
int main()
{

int a = 2,b = 3;
a = a+b;
b = a-b;
a = a-b;
printf("a=%d\nb=%d\n",a,b);
system("pause");
return 0;
}
   但是這個方法容易溢出,還有沒有更優化的方法呢???(當然有、、嘻嘻。如下)

#include<stdio.h>
#include<stdlib.h>
int main()
{

int a = 3,b = 4;
a = a^b;
b = a^b;
a = a^b;
printf("a=%d\nb=%d\n",a,b);
system("pause");
return 0;
}

 加入#include<stdlib.h>和system ("pause");是為了阻止輸出結果閃退,有些版本可能不需要。







注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com