看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《Zoxge (Zoxge)》之銘言: : 開發平台(Platform): (Ex: Win10, Linux, ...) : Linux : 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) : GCC : 問題(Question): : 有一個一維array,裡面隨機存了20個1~500之間的數字 : 現在要依序print出1~500之間的數字,但不包含那個一維array裡面的內容 : 請問除了下面網址內的方法(檢查array中每個index存放的值)之外 : 有什麼更快的方法能夠解決這個問題呢? : 謝謝 : 程式碼(Code):(請善用置底文網頁, 記得排版) : https://ideone.com/1KIzIo bool isNumberInArray[501]={0}; for(int i=0;i<20;i++) { isNumberInArray[ ARRAY[i] ]=1; } for(i=1;i<=500;i++) { if( 0 == isNumberInArray[i] ) printf("%d",i); } 用一個大小為500的bool array紀錄哪些數字不用印出來 然後依序把剩下的數字印出來即可 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.47.7 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1492699944.A.063.html
CodingMan: 大小不是501嗎? 04/20 23:37
Hazukashiine: 別糾結 ww 這裡宣告 isNumberInArray[500] 也可以 04/21 01:25
Hazukashiine: 但是要改成 isNumberInArray[ ARRAY[i] - 1] = 1; 04/21 01:26
hunandy14: 好奇 ={0} 的習慣是基於好辨識嗎 一看就知道初始0 04/27 13:10
hunandy14: 因為這只會初始化到第一個~還是有什麼其他原因 04/27 13:11
LPH66: 不是喔, {} 初始化對後面沒寫元素的都是預設初始化 04/28 10:07
LPH66: 對 primitive type 預設初始化就是 0 04/28 10:08
LPH66: 所以理論上可以寫 = {}, 但寫 = {0} 看的人就很清楚是 0 04/28 10:09
LPH66: 另外寫 = {} 跟不寫也有差, 不寫才是真的都沒初始化 04/28 10:15
hunandy14: 了解~知道會預設初始化,敘述打錯了 04/28 13:03
hunandy14: 原意是想表示 只會指定第一個~ 感謝說明 04/28 13:05