[閒聊] 目前的密碼產生器 程式構想基本流程(麻 …

看板SD-GundamOL (SD鋼彈 Online)作者 (開膛手傑克)時間16年前 (2009/12/15 16:04), 編輯推噓12(12029)
留言41則, 11人參與, 最新討論串1/2 (看更多)
下面是簡單的密碼產生流程 也請教板上的大大幫忙改進 畢業後 好久沒碰了 我先等今天回家把程式寫好在放上來試試看 #include <stdio.h> #include <stdlib.h> #include <time.h> void choice1(void); /*void choice2(void); int num[30][5];*/ int main (void) { printf ("*************************\n"); printf ("* sd鋼彈版鄉民專用密碼表*\n"); printf ("*************************\n"); printf ("請輸入以下選項\n\n"); printf ("《1》密碼選擇\n"); printf ("《2》離開程式\n"); printf ("請輸入選項:"); int w,Choice; scanf ("%d",&w); switch(w) { case 1: choice1 (); break; case 2: break; } system ("pause"); return 0; } void choice1(void) { srand((unsigned)time(NULL)); int x; int i,j,k,n; int a[6]; printf ("請選擇你要幾組密碼:"); scanf ("%d",&x); printf ("系統跳出了 %d 組密碼:\n",x); for (n=1;n<=x;n++) { for (i=0;i<=9;i++) { do { a[i]=rand()%10+1; k=0; for (j=0,k=0;j<=i;j++) { if (a[i]==a[j]) { k++; } } }while(k>1); } for (i=0;i<=9;i++) printf (" [%d] ",a[i]); printf ("\n"); } } 目前手上只有一台小筆電跟工具書 大概做出來雛型只有這樣- - 有沒有大大可以接手幫忙的? --

12/04 11:39,
更新完畢+1
12/04 11:39

12/04 11:39,
我有重開過 情況還是一樣 0058也是一下就滿 但是就是
12/04 11:39

12/04 11:40,
射不出來
12/04 11:40

12/04 11:41,
會剩一咪咪 我看我的流量有一直在跑 不知道怎麼回事
12/04 11:41

12/04 11:42,
就又射出來了
12/04 11:42
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 58.114.104.140

12/15 16:06, , 1F
完全看不懂= =
12/15 16:06, 1F

12/15 16:06, , 2F
作成網頁形式才好大家都能用
12/15 16:06, 2F

12/15 16:07, , 3F
痾 我知道了 那我先找個空間好了
12/15 16:07, 3F

12/15 16:07, , 4F
另外建議以文章代碼AID來做計算...演算法是另一回事
12/15 16:07, 4F

12/15 16:08, , 5F
所以 基本的0-9 不重複演算 這想法OK嗎?
12/15 16:08, 5F

12/15 16:08, , 6F
要在那麼短的長度內弄出每個都只有一個對應的密碼
12/15 16:08, 6F

12/15 16:08, , 7F
有難度
12/15 16:08, 7F

12/15 16:09, , 8F
如果 我把演算方式 改成選擇性敘述做選擇會比較好嗎?
12/15 16:09, 8F

12/15 16:09, , 9F
為什麼不直接用hash code就好呢?
12/15 16:09, 9F

12/15 16:09, , 10F
取除以42的餘數?
12/15 16:09, 10F

12/15 16:10, , 11F
Hash Code的方式 可以減少索引時間..這想法好像不錯
12/15 16:10, 11F

12/15 16:10, , 12F
話說你一開始include那邊被鬼隱了
12/15 16:10, 12F

12/15 16:11, , 13F
我改一下 SORRY
12/15 16:11, 13F
※ 編輯: lukkiss999 來自: 58.114.104.140 (12/15 16:12)

12/15 16:12, , 14F
你選2的手動跳號...就break是怎麼回是=口=
12/15 16:12, 14F

12/15 16:12, , 15F
有2選項,但是不能用阿O_Oa
12/15 16:12, 15F
※ 編輯: lukkiss999 來自: 58.114.104.140 (12/15 16:13)

12/15 16:13, , 16F
網頁形式不是指把程式丟到空間上吧..@@
12/15 16:13, 16F
※ 編輯: lukkiss999 來自: 58.114.104.140 (12/15 16:13) ※ 編輯: lukkiss999 來自: 58.114.104.140 (12/15 16:14)

12/15 16:15, , 17F
縮排沒縮好 看的眼睛都花了 為啥要取42的餘數??
12/15 16:15, 17F

12/15 16:16, , 18F
看來玩個遊戲好像困難度越來越高了......
12/15 16:16, 18F

12/15 16:17, , 19F
for (j=0,k=0;j<=i;j++) 沒試過這樣寫法可不可以
12/15 16:17, 19F

12/15 16:18, , 20F
因為說真的...你的起始k=0進去又不會加= ="
12/15 16:18, 20F

12/15 16:18, , 21F
樓上那樣可以 j跟k都會初始為0
12/15 16:18, 21F

12/15 16:18, , 22F
抱歉阿 我已經跟同事緊急借C語言程式來灌了 我先做個
12/15 16:18, 22F

12/15 16:19, , 23F
修改
12/15 16:19, 23F

12/15 16:19, , 24F
我是說for loop本身不會對他做++的動作
12/15 16:19, 24F

12/15 16:21, , 25F
是沒有寫在for裡的必要就是了XD
12/15 16:21, 25F

12/15 16:24, , 26F
最後三行...那兩個printf是否要包在for裡面?
12/15 16:24, 26F

12/15 16:26, , 27F
另外在choice1這個function裡面你有宣告k,但是沒有
12/15 16:26, 27F

12/15 16:26, , 28F
給k一個初始值,你的do要用while(k>1)來判斷要不要做
12/15 16:26, 28F

12/15 16:27, , 29F
但是你這樣可能初始的k=0或1,就不會進去了...
12/15 16:27, 29F

12/15 16:28, , 30F
建議進去do之前先k=0,然後do的內部最尾巴再k=0清掉
12/15 16:28, 30F

12/15 16:28, , 31F
do while最少會做一次 所以會進去
12/15 16:28, 31F

12/15 16:29, , 32F
阿我說錯了,最後k=0就只能做一次
12/15 16:29, 32F

12/15 16:29, , 33F
另外就是縮排...我很努力看了...
12/15 16:29, 33F

12/15 16:31, , 34F
k140...在for的前面他就先k=0了,已經初始為0完畢了
12/15 16:31, 34F

12/15 16:31, , 35F
糟糕,我認真了
12/15 16:31, 35F

12/15 16:56, , 36F
沒#include <time.h> 沒法用time()
12/15 16:56, 36F

12/15 16:57, , 37F
抱歉 剛剛改過後有補上去 不過這裡面忘記改
12/15 16:57, 37F

12/15 18:17, , 38F
你的case2勒... 直接break了耶..
12/15 18:17, 38F
※ 編輯: lukkiss999 來自: 58.114.104.140 (12/15 18:32)

12/15 22:18, , 39F
我覺得鄉民熱心是很好很棒的事
12/15 22:18, 39F

12/15 22:18, , 40F
可是既然提到AID 為啥不直接拿文章AID當密碼...
12/15 22:18, 40F

12/15 22:18, , 41F
這樣不是更簡單省事而且密碼唯一嗎 囧>
12/15 22:18, 41F
文章代碼(AID): #1B9qCe3C (SD-GundamOL)
文章代碼(AID): #1B9qCe3C (SD-GundamOL)