作者lukkiss999 (開膛手傑克)
看板SD-GundamOL
標題[閒聊] 目前的密碼產生器 程式構想基本流程(麻煩大家給點意見)
時間Tue Dec 15 16:04:48 2009
下面是簡單的密碼產生流程 也請教板上的大大幫忙改進
畢業後 好久沒碰了 我先等今天回家把程式寫好在放上來試試看
#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");
}
}
目前手上只有一台小筆電跟工具書 大概做出來雛型只有這樣- -
有沒有大大可以接手幫忙的?
--
1F:推 francis763 :更新完畢+1 12/04 11:39
2F:→ hinakenli :我有重開過 情況還是一樣 0058也是一下就滿 但是就是 12/04 11:39
3F:→ francis763 :射不出來 12/04 11:40
4F:→ hinakenli :會剩一咪咪 我看我的流量有一直在跑 不知道怎麼回事 12/04 11:41
5F:推 YukiPhoenix :就又射出來了12/04 11:42
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 58.114.104.140
6F:推 quark56 :完全看不懂= = 12/15 16:06
7F:推 mshx :作成網頁形式才好大家都能用 12/15 16:06
8F:→ lukkiss999 :痾 我知道了 那我先找個空間好了 12/15 16:07
9F:→ mshx :另外建議以文章代碼AID來做計算...演算法是另一回事 12/15 16:07
10F:→ lukkiss999 :所以 基本的0-9 不重複演算 這想法OK嗎? 12/15 16:08
11F:→ mshx :要在那麼短的長度內弄出每個都只有一個對應的密碼 12/15 16:08
12F:→ mshx :有難度 12/15 16:08
13F:→ lukkiss999 :如果 我把演算方式 改成選擇性敘述做選擇會比較好嗎? 12/15 16:09
14F:推 abcshia :為什麼不直接用hash code就好呢? 12/15 16:09
15F:推 francis763 :取除以42的餘數? 12/15 16:09
16F:→ lukkiss999 :Hash Code的方式 可以減少索引時間..這想法好像不錯 12/15 16:10
17F:→ francis763 :話說你一開始include那邊被鬼隱了 12/15 16:10
18F:→ lukkiss999 :我改一下 SORRY 12/15 16:11
※ 編輯: lukkiss999 來自: 58.114.104.140 (12/15 16:12)
19F:→ francis763 :你選2的手動跳號...就break是怎麼回是=口= 12/15 16:12
20F:→ francis763 :有2選項,但是不能用阿O_Oa 12/15 16:12
※ 編輯: lukkiss999 來自: 58.114.104.140 (12/15 16:13)
21F:推 leafwind :網頁形式不是指把程式丟到空間上吧..@@ 12/15 16:13
※ 編輯: lukkiss999 來自: 58.114.104.140 (12/15 16:13)
※ 編輯: lukkiss999 來自: 58.114.104.140 (12/15 16:14)
22F:推 kl40 :縮排沒縮好 看的眼睛都花了 為啥要取42的餘數?? 12/15 16:15
23F:→ superfly1 :看來玩個遊戲好像困難度越來越高了...... 12/15 16:16
24F:推 francis763 :for (j=0,k=0;j<=i;j++) 沒試過這樣寫法可不可以 12/15 16:17
25F:→ francis763 :因為說真的...你的起始k=0進去又不會加= =" 12/15 16:18
26F:推 kl40 :樓上那樣可以 j跟k都會初始為0 12/15 16:18
27F:→ lukkiss999 :抱歉阿 我已經跟同事緊急借C語言程式來灌了 我先做個 12/15 16:18
28F:→ lukkiss999 :修改 12/15 16:19
29F:→ francis763 :我是說for loop本身不會對他做++的動作 12/15 16:19
30F:推 kl40 :是沒有寫在for裡的必要就是了XD 12/15 16:21
31F:推 francis763 :最後三行...那兩個printf是否要包在for裡面? 12/15 16:24
32F:→ francis763 :另外在choice1這個function裡面你有宣告k,但是沒有 12/15 16:26
33F:→ francis763 :給k一個初始值,你的do要用while(k>1)來判斷要不要做 12/15 16:26
34F:→ francis763 :但是你這樣可能初始的k=0或1,就不會進去了... 12/15 16:27
35F:→ francis763 :建議進去do之前先k=0,然後do的內部最尾巴再k=0清掉 12/15 16:28
36F:推 kl40 :do while最少會做一次 所以會進去 12/15 16:28
37F:→ francis763 :阿我說錯了,最後k=0就只能做一次 12/15 16:29
38F:→ francis763 :另外就是縮排...我很努力看了... 12/15 16:29
39F:→ francis763 :k140...在for的前面他就先k=0了,已經初始為0完畢了 12/15 16:31
40F:→ francis763 :糟糕,我認真了 12/15 16:31
41F:→ homestay :沒#include <time.h> 沒法用time() 12/15 16:56
42F:→ lukkiss999 : 抱歉 剛剛改過後有補上去 不過這裡面忘記改 12/15 16:57
43F:→ seedpk5079 :你的case2勒... 直接break了耶.. 12/15 18:17
※ 編輯: lukkiss999 來自: 58.114.104.140 (12/15 18:32)
44F:推 aurorafox :我覺得鄉民熱心是很好很棒的事 12/15 22:18
45F:→ aurorafox :可是既然提到AID 為啥不直接拿文章AID當密碼... 12/15 22:18
46F:→ aurorafox :這樣不是更簡單省事而且密碼唯一嗎 囧> 12/15 22:18