今天面試嵌入式,突然遇到這么一道題目,雖然簡單,但鑒於我答得不是很好,所以還是分析一下為好。
第一種方法:
通過加減法。
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 }
運行結果:
在做這道題的時候,由於思考進入了誤區,所以寫到后面都不知道自己在寫什么。。。
唉。。。還是要多多修煉內功。