> 文档中心 > 【每日C语言】模拟用户登录情景,实现简单密码功能

【每日C语言】模拟用户登录情景,实现简单密码功能


问题分析:

模拟用户登录情景,实现简单密码功能;只允许输入三次密码,如果密码正确则提示登录成功,如果三次均输入错误,则退出程序;


解决过程:

1、定义两个数组 arr1、arr2,分别存放原始设定密码、用户输入密码;

2、密码比对阶段;

3、若比对成功;则打印“登录成功”,若比对失败,则打印比对失败;

4、判断是否三次输入失败,退出程序


运行环境:

Visual Studio 2022


运行代码:

代码一:

密码输入模式 -> 输入1个字符,1个空格,再输入一个字符,一个空格(循环6遍)

#include #include int main(){int arr1[6] = { 1,2,3,4,5,6 };int arr2[6] = { 0 };int i = 0;int k = 0;int t = 1;  //记录登录失败次数while (t <= 3){for (i = 0; i < 6; i++){scanf("%d", &arr2[i]);}getchar();  //处理'\n'k = 0;for (i = 0; i < 6; i++){if (arr1[i] == arr2[i]){k++;}else{t++;if (t <= 3)printf("登录失败\n");break;}}if (k == 6 && t  3){printf("已累计三次密码错误,实现报警\n");}return 0;}


 代码二:

密码输入模式 -> 直接输入6个字符,不用输入空格

#include #include int main(){char arr1[6] = "123456" ;char arr2[6] = "000000" ;int i = 0;int k = 0;int t = 1;  //记录登录失败次数while (t <= 3){scanf("%s", arr2);k = 0;for (i = 0; i < 6; i++){if (arr1[i] == arr2[i]){k++;}else{t++;if (t <= 3)printf("登录失败\n");break;}}if (k == 6 && t  3){printf("已累计三次密码错误,实现报警\n");}return 0;}


 代码三:

密码输入模式 -> 直接输入6个字符,不用输入空格,并简化算法

#include #include int main(){int i = 0;   //记录登录失败次数char password[20] = { 0 };for (i = 0; i ");scanf("%s", password);  //此处的数组名 password 代表指针,存放地址,故不用加'&'if (strcmp(password, "123456") == 0) //两个字符串比较,不能用==,应该使用strcmp()函数{printf("登录成功\n");break;}else{printf("登录失败\n");}}if (i == 3){printf("三次密码均错误,退出程序\n");}return 0;}