學習編程可以鍛煉你的思維,幫助你更好地思考,創建一種我認為在各領域都非常有用的思維方式。
--比爾蓋茨
曾經的華為C面試題,一點就通
【問題區】
有兩個變量x和y, x=10; y = 20; 請使用C語言代碼實現兩個變量的交換,要求至少使用3 種辦法!
【提示區】
如果使用一個臨時變量,來交換兩個x和y的值,這是初學者都會的事情,如果不用臨時變量,我們有沒有辦法實現呢?
大家還記得初中代數中的公式嗎?
x + y = z ; 那么 x= z - y 或是 y = z - x ;
x * y = z ; 那么 x = z / y 或是 y = z / x;
上面這個公式說明: 如果我們知道兩個數,以及兩個數經過某種運算得到的結果,我們就可以通過三者中的任意兩者得到第三者的結果!
【C代碼實現區】
#include <stdio.h>
int main(void){
int x = 10;
int y = 20;
//第一種方法 臨時變量交換
int z = 0;
z = x;
x = y;
y = z;
//第二種方法 加法
x = x + y; //執行后 x=30,y=20
y = x - y; //執行后 x=30,y=10
x = x - y; //執行后 x=20,y=10
//第三種方法 乘法
x = x * y; //執行后 x=200,y=20
y = x / y; //執行后 x=200,y=10
x = x / y; //執行后 x=20,y=10
//第四種方法 異或運算
x = x ^ y;
y = x ^ y;
x = x ^ y;
printf("x=%d, y=%d\n", x, y);
return 0;
}
【視頻講解】
詳細講解視頻分享在騰訊視頻,鏈接:https://v.qq.com/x/page/v08145k1qdr.html
-----------------------------------------------------------------------------------------
更多C語言學習視頻內容也可以關注我公眾號: 零基礎零障礙學習C語言
學習路線和建議
編程英語加油站
編程思維修煉
編程技術文章
IT職場提升
祝大家學習愉快!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。