【第22期】观点:IT 行业加班,到底有没有价值?

C语言实现密码的设置及验证

原创 2015年11月21日 20:53:53
#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;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

c语言中如何设计和编写一个应用系统?

C程序中,如何设计和编写一个应用系统?   一、 C语言文件的操作 1、 文件操作的基本方法: C语言将计算机的输入输出设备都看作是文件。例如,键盘文件、屏幕文件等. 向屏幕输出一个信息,例...

学生成绩管理系统(C语言)

//////////////////////////////////////////////////////////////// 工程名称:学生成绩管理系统// 工程文件:C语言课程设计// 作 者:...

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

C语言面试题汇编

1.局部变量能否和全局变量重名?     答:能,局部会屏蔽全局。要用全局变量,需要使用"::" ;局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)