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

歡迎來到培訓無憂網!

全國切換

咨詢熱線 400-001-5729

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

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

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

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

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

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

  • 手機:

  • 地區:

  • 想學什么:

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

主站蜘蛛池模板: 她也啪在线视频精品网站 | 美女张开腿让男人桶爽免 | 国产欧美日韩一区二区三区在线 | 亚欧在线视频 | 欧美精品色精品一区二区三区 | 亚洲天堂男人网 | 欧美日本一区二区三区生 | 一级a性色生活片久久毛片 一级a做爰片欧欧美毛片4 | 亚洲精品综合欧美一区二区三区 | 男女男精品视频在线播放 | 欧洲成人免费视频 | 欧美国产精品 | 欧美三级超在线视频 | 三级黄色在线观看 | 亚洲一区二区三区四区在线 | 特级a欧美孕妇做爰片毛片 特级a欧美做爰片毛片 | 99在线精品视频 | 草久视频在线观看 | 手机福利片 | 成人影院一区二区三区 | 日本高清专区一区二无线 | 国产一级一片免费播放i | 国产成人久久 | 欧美日本一道道一区二区三 | 国产精品2019| 亚洲黄色三级视频 | 亚洲综合久久综合激情久久 | 日本九六视频 | 亚洲国产成人久久一区二区三区 | 91精品综合久久久久m3u8 | 欧美一级免费片 | 嫩草影院成人 | 久久国产国内精品对话对白 | 成人a视频在线观看 | 国产主播大尺度精品福利 | a级毛片在线看日本 | 国产日韩欧美一区二区三区在线 | 欧美精品久久一区二区三区 | 国产精品手机视频一区二区 | 又黄又湿又爽吸乳视频 | a毛片免费全部播放毛 |