[問題] 如何傳回陣列

看板C_and_CPP (C/C++)作者 (比格)時間16年前 (2009/05/17 13:13), 編輯推噓3(305)
留言8則, 4人參與, 最新討論串1/1
題目是要寫一個function 可以列出所有由0~9其中任意四個不同數字所組成的數字 簡而言之就是可以列出從0123到9876共5040個數字 我已經寫了大部分(如下) void createPool(int numPool[]) { int num; int a, b, c, d; for(int i=0; i<5040; i++){ for(a=0; a<10; a++){ for(b=0; b<10; b++){ for(c=0; c<10; c++){ for(d=0; d<10; d++){ if(a==b || a==c || a==d || b==c || b==d || c==d) continue; else numPool[i] = 1000*a+100*b+10*c+d; } } } } } } 可是這樣寫有個問題 就是0開頭的會只剩下三位數 若將for(int i=0; i<5040; i++){去掉 並將numPool[i] = 1000*a+100*b+10*c+d; 改為cout<<a<<b<<c<<d; 又沒有把所得數字傳回numPool[] 請問這個問題要怎麼解決呢? 謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.228.195.7

05/17 13:15, , 1F
阿你printf()的時候給一個 %04d 不就好了
05/17 13:15, 1F

05/17 13:17, , 2F
for(int i=0; i<5040; i++) 去掉,numPool[i++] = ...
05/17 13:17, 2F

05/17 13:26, , 3F
用cout就用setw()和setfill()自己拼吧
05/17 13:26, 3F

05/17 17:20, , 4F
setw(4) setfill('0')
05/17 17:20, 4F

05/17 22:49, , 5F
不過這樣不就是cout 要怎麼將數值傳回給numPool[]??
05/17 22:49, 5F

05/17 23:12, , 6F
也就是要怎麼把迴圈run出來的東西傳回給陣列
05/17 23:12, 6F

05/17 23:30, , 7F
numPool[i]應該要等於什麼東西??
05/17 23:30, 7F

05/18 06:12, , 8F
要不然你用 char 存
05/18 06:12, 8F
文章代碼(AID): #1A3vptSA (C_and_CPP)
文章代碼(AID): #1A3vptSA (C_and_CPP)