溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

曾經的華為C面試題,一點就通

發布時間:2020-08-01 04:57:58 來源:網絡 閱讀:479 作者:Martin老師 欄目:編程語言

 學習編程可以鍛煉你的思維,幫助你更好地思考,創建一種我認為在各領域都非常有用的思維方式。

                                                                                                                      --比爾蓋茨


曾經的華為C面試題,一點就通

 

 曾經的華為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職場提升


祝大家學習愉快!





向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女