c语言密码生成
计算机实习报告
一 题目分析
1 实验题目:
实现一个简单的密码生成系统。一个有效的密码由L(3<=L<=15)个小写字母(来自传统的拉丁字母集'a'...'z')组成,至少有一个元音字母('a','e','i','o'或者'u'),至少有两个辅音字母(除去元音以外的字母),并且按字母表顺序出现(例如,'acd'是有效的,而'dac'不是)。
给定一个期望长度L和若干个小写字母,写一个程序,打印出所有的长度为L、能由这些字母组成的有效密码。密码必须按字母表顺序打印出来。
2 题目分析
本次计算机实习的任务实现一个密码生成系统,也就是在输入的一串字符中,找出L个(L是给定的长度)组成一组,而且要满足如下要求:(1)每组中至少有一个元音字符,和至少两个辅音字符 ;(2)按字母表顺序出现;(3)打印出所有的长度为L、能由这些字母组成的有效密码。
关键部分是(3),在输入的一串字符中找出所有由L个字符组成的密码,不能有遗漏。这可以用循环实现。其次是(2),这相当于数组排列。然后用循环逐个判断每一组中的L个字符,检查是否符合要求(1)。
二 程序设计
1 设计思想
(1)首先从键盘输入用来生成密码的字符,保存在字符数组chars[]中;
(2)测试chars[]的长度N,对给定的密码长度L(N>=L);
(3) 编写一个子函数sort( ),实现将其中的字符按字母