[問題] C 輸入數字轉成字母排列

看板C_and_CPP作者 (皤皤)時間14年前 (2010/12/14 14:24), 編輯推噓3(305)
留言8則, 6人參與, 最新討論串1/2 (看更多)
開發平台(Platform): (Ex: VC++, Gcc, Linux, ...) VC++ 額外使用到的庫(Library Used) (Ex: OpenGL, ...) 問題(Question): 請問,如果輸入 1 代表A跟B,2代表C D,然後輸入12的話會出現AC AD BC BD, 輸入21會出現CA CB DA DB,我只想的到很笨的方法,用if搭配for, 可是如果再多一個數字3代表E和F,就要多寫很多行,如果再有更多數字長度就會變得很長 ,請問有沒有別的方法可以取代? 程式碼(Code): (請善用置底文標色功能) char a1[]="AB"; char a2[]="CD"; scanf("%d%d",&a,&b); if(a==1 && b==2) { for(i=0;i<2;i++){ for(j=0;j<2;j++){ printf("%c%c,",a1[i],a2[j]); }}} 我是C語言初學者 我只能想到類似這樣的方法,如果要有更多數字的組合 就要每種組合都寫,實在很不聰明, 可以請教一下有什麼別的方法嗎? 謝謝了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.134.181.173

12/14 22:52, , 1F
如果用遞迴呢?
12/14 22:52, 1F

12/14 23:10, , 2F
算1234時,令r=fun(3,4);然後 for(i=2~1) 迴圈算 r=f(i,r)
12/14 23:10, 2F

12/14 23:10, , 3F
fun()就是f(),沒打清楚
12/14 23:10, 3F

12/14 23:13, , 4F
用ascii code來做
12/14 23:13, 4F

12/14 23:20, , 5F
假如是123的話,有2x2x2=8種組合。 ==!
12/14 23:20, 5F

12/15 01:14, , 6F
用ascii做是轉換不錯,但主要應該是處理配對組合吧?
12/15 01:14, 6F

12/15 13:39, , 7F

12/15 22:38, , 8F
謝謝大家的建議
12/15 22:38, 8F
文章代碼(AID): #1D1tu9Ni (C_and_CPP)
文章代碼(AID): #1D1tu9Ni (C_and_CPP)