面試記錄00:在C語言中不使用任何中間變量如何將a、b的值進行交換(三種方法)——來自一小萌新工程師的復習


今天面試嵌入式,突然遇到這么一道題目,雖然簡單,但鑒於我答得不是很好,所以還是分析一下為好。

第一種方法:

通過加減法。

 1 #include"stdio.h"
 2 int main(void)
 3 {
 4     int a=6,b=8;
 5     a=a+b;
 6     b=a-b;
 7     a=a-b;
 8     printf("a=%d\nb=%d\n",a,b);
 9     return 0;
10 }

運行結果:


第二種方法:

乘除法。

 1 #include"stdio.h"
 2 int main(void)
 3 {
 4     int a=16,b=68;
 5     a=a*b;
 6     b=a/b;
 7     a=a/b;
 8     printf("a=%d\nb=%d",a,b);
 9     return 0;
10 }

運行結果:


第三種:

通過位運算符異或來實現。

 1 #include"stdio.h"
 2 int main(void)
 3 {
 4     int a=86,b=68;
 5     a=a^b;
 6     b=a^b;
 7     a=a^b;
 8     printf("a=%d\nb=%d",a,b);
 9     return 0;
10 }

運行結果:

在做這道題的時候,由於思考進入了誤區,所以寫到后面都不知道自己在寫什么。。。

唉。。。還是要多多修煉內功。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM