C语言实现密码的设置及验证
2015-11-21 20:53
435 查看
#include <stdio.h> /*定义密码输入函数*/ void password_set(unsigned int *passwordArrary) { int enter_counter; /*定义密码输入计数器*/ /*for循环实现密码的输入*/ printf("请输入6位数字密码\n"); for (enter_counter = 0; enter_counter < 6; enter_counter++) { scanf_s("%d", &passwordArrary[enter_counter]); } } /*定义check_rule函数检查输入密码是否符合密码设置规则*/ int check_rule(unsigned int *passwordArrary) { int checkRule_flag; int checkRule_counter; checkRule_flag = 0; for (checkRule_counter = 1; checkRule_counter <= 6; checkRule_counter++) { if ((*passwordArrary) > 0 && (*passwordArrary) < 10) { checkRule_flag++; passwordArrary++; } else { passwordArrary++; } } if (checkRule_flag == 6) { return 1; } else { return 0; } } /*定义一个密码校验函数*/ int password_value_check(unsigned int *passwordArrary) { unsigned int password_check[6]; /*存放再次输入的密码值*/ int passwordCheckEnter_counter; /*循环输入密码*/ int passwordCheck_counter; /*校验次数计数器*/ int passwordCheck_flag; /*校验标志位*/ passwordCheck_counter = 0; passwordCheck_flag = 0; /*再次输入密码并存如校对数组*/ printf("请再次输入刚才设置的密码以便进行校验!\n"); for (passwordCheckEnter_counter = 0; passwordCheckEnter_counter < 6; passwordCheckEnter_counter++) { scanf_s("%d", &password_check[passwordCheckEnter_counter]); } while (passwordCheck_counter < 6) { if ((*passwordArrary) == password_check[passwordCheck_counter]) /*判断两次密码是否相同*/ { passwordCheck_flag++; passwordArrary++; passwordCheck_counter++; } else { passwordArrary++; passwordCheck_counter++; } } if (passwordCheck_flag == 6) /*判断标志位返回相应值*/ { return 1; } else { return 0; } } int main() { unsigned int passwordArrary[6]; /*定义一个存放密码的数组*/ unsigned int *password_set_return; int check_rule_flag; /*定义密码规则检查返回标识位*/ int check_value_flag; /*设定密码校验标志位*/ int set_counter; /*定义密码设置计数器*/ int check_counter; /*定义密码校验计数器*/ set_counter = 1; check_counter = 1; password_set(passwordArrary); /*利用check_rule函数检查输入的函数是否符合密码设置规则*/ check_rule_flag = check_rule(passwordArrary); while (check_rule_flag == 0 && set_counter <= 5) { set_counter++; printf("您输入的密码不符合规格,请重新输入6位0~9之间的密码\n"); password_set(passwordArrary); check_rule_flag = check_rule(passwordArrary); } if (set_counter > 5) { printf("密码设置已经超过规定次数!\n"); } else { check_value_flag = password_value_check(passwordArrary); while (check_value_flag == 0 && check_counter <= 5) { check_counter++; check_value_flag = password_value_check(passwordArrary); } if (check_counter > 5) { printf("输入错误次数超过5次,登陆失败!\n"); } else { printf("密码校验成功!\n"); } } return 0; }
相关文章推荐
- 《算法竞赛入门经典2ndEdition 》例题3-1 TeX中的引号(Tex Quotes, Uva 272)
- C语言指针和数组的关系
- POJ 1107 W's Cipher
- C语言重要常用知识点梳理
- 我的Bit路-C语言实现顺序
- C++程序员必须知道的5大内存区域
- C语言实现顺序表
- KMP-快速模式匹配算法
- c语言符号常量与常变量的区别?
- c语言输出4*5的数列?
- c语言 变量的存储类别以及对应的内存分配?
- c语言编译执行过程
- win编程实践(3)【c++】-枚举值
- jni c语言使用指针交换两个值
- 快速排序(已优化) -- C语言
- C++学习笔记27——泛型算法之统计(accumate count)
- C++赋值操作符重载简介
- C++赋值操作符重载简介
- C++11 为自定义容器实现标准的forward迭代器
- C语言扫雷