a级毛片免费全部播放-a级毛片免费观看在线播放-a级毛片免费观看网站-a级毛片免费看-国产成人精品在视频-国产成人精品在线

歡迎來到培訓無憂網!

全國切換

咨詢熱線 400-001-5729

位置:培訓無憂網 > 新聞資訊 > 電腦/IT > c語言 >  C語言學習過程中如何優化代碼

C語言學習過程中如何優化代碼

來源:培訓無憂網 發布人:星星

2022-01-24 11:15:56|已瀏覽:2158次

C語言學習過程中如何優化代碼

       編寫高效簡潔的C語言代碼,是許多軟件工程師追求的目標。本文就工作中的一些體會和經驗做做了一下三個問題,對其進行了優化,不對的地方請各位指教。

       <1>.輸出 int 型數組a的元素個數
       printf("%d\n",_________);
       這里怎么填對我們來說非常簡單了,我們一般用的32位機,所以直接寫 sizeof(a)/4 就可以,開始這樣代碼就只適用于32位機,就降低了代碼的移植性,所以可以改為 sizeof(a)/sizeof(int) ,讓系統自行計算 int 類型占用空間。可如果改一下題目,輸出數組a的元素個數呢?這時數組的元素類型不確定,但是數組每個元素的類型一定相同,因此只要寫 sizeof(a)/sizeof(a[0]) 就可以了。
      <2>.int 型數組a有n個元素,將數組從中間一分為二,輸出數組后半段的起始下標
       printf("%d\n",_________);

       很容易可以想到數組元素個數有奇偶之分,那么可以這樣填:(n%2==1)?(n/2+1):(n/2) 這樣寫當然沒有錯,只是有些繁瑣,而且條件運算符的三個部分都要用括號括起來,否則會出現語法錯誤,這樣的代碼當然就不夠好了。那么要怎么寫?

       其實這類問題可以用數學知識來解決:n為奇數時后半段起始下標是 /2+1,為偶數則是 n/2+0,n為奇數時加的1和n為偶數時加的0可以看成是他本身對2取余,所以可以填: /2+(n%2)。好像還是不夠好看,再想一下還可以怎么優化呢:一個奇數和比它小1的偶數除以2得到相同的數,那么如果n是奇數, n/2+1 和 (n+1)/2 等價,如果n是偶數, n/2+0 和 (n+1)/2 等價,于是這里可以這樣填了: (n+1)/2。

       再補充說一個小的點,在 (n%2==1)?(n/2+1):(n/2) 中 n%2==1 就等價于 n%2 ,它們的值是一樣的,總結一下就是n==1等價于n,而n==0就等價于!n,這樣寫可以避免使用==號帶來的容易錯寫成=賦值號造成答案錯誤的問題,提高了代碼的安全性。
       那如果一句代碼是要判斷兩個數m與n相等或不等的關系呢?想一下,如果相等,那么m-n==0,于是判斷相等用!(m-n),判斷不等用(m-n)。
<3>.將數組a={10,20,30,40,50}輸出k次
       如k=3,輸出:10 20 30 40 50 10 20 30 40 50 10 20 30 40 50 可以這樣寫:
       for(int loop=0;loop<k;loop++) for(int i=0;i<5;i++) printf("%d ",a[i]);
       這樣的就是常規思想,用兩層循環控制輸出,這樣時間復雜度就較高,影響程序運行的效率,那么其實可以這樣寫的:

       for(int i=0;i<5*k;i++) printf("%d ",a[i%5]);

       這樣就變成了一重循環啦,降低了時間復雜度而且也沒有提高空間復雜度,代碼效率自然就變高了。

      注:尊重原創文章,轉載請注明出處和鏈接 http://m.dedgn.cn/news-id-17704.html 違者必究!部分文章來源于網絡由培訓無憂網編輯部人員整理發布,內容真實性請自行核實或聯系我們,了解更多相關資訊請關注c語言頻道查看更多,了解相關專業課程信息您可在線咨詢也可免費申請試課。關注官方微信了解更多:150 3333 6050

留下你的信息,課程顧問老師會一對一幫助你規劃更適合你的專業課程!
  • 姓名:

  • 手機:

  • 地區:

  • 想學什么:

  • 培訓無憂網
免 費 申 請 試 聽
提交申請,《培訓無憂網》課程顧問老師會一對一幫助你規劃更適合你的專業課程!

主站蜘蛛池模板: 亚洲 中文 欧美 日韩 在线人 | 大臿蕉香蕉大视频成人 | 国产精品国产高清国产专区 | 新版天堂中文资源8在线 | 久久久一区二区三区 | 最新在线精品国自拍视频 | 欧美透逼视频 | 欧美成人免费公开播放 | 国产手机视频 | 国产一级高清 | 美女国产福利视频 | 97青青草原国产免费观看 | 美国一级大黄香蕉片 | 亚洲欧美日韩精品久久亚洲区色播 | 国产日韩欧美一区二区三区在线 | 久久中文字幕综合不卡一二区 | 国产第一页久久亚洲欧美国产 | 成人免费午夜性视频 | 国产乱肥老妇精品视频 | 男人天堂网站在线 | 国产亚洲精品久久综合影院 | 亚洲一区二区三区欧美 | 日韩中文字幕网站 | 欧美另类性视频在线看 | 精品国产网 | 欧美 亚洲 另类 自拍 在线 | 国产成人a在一区线观看高清 | 日韩一级视频 | 日本欧美视频在线 | 久久综合丁香 | 欧美日韩在线看 | 二区三区在线观看 | 99精品网站 | 99国产精品久久久久久久成人热 | 国产亚洲精品看片在线观看 | 日本一级高清不卡视频在线 | 可以看的毛片网站 | 国产女人伦码一区二区三区不卡 | 91原创视频在线观看 | 一区二区三区欧美日韩国产 | 久久久网久久久久合久久久久 |