作者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