编写代码模拟三次密码输入的场景。 最多能输入三次密码,密码正确,提示“登录成功”,密码错误, 可以重新输入,最多输入三次。三次均错,则提示退出程序。

本文介绍了一个使用C语言实现的简单密码验证程序。程序通过scanf函数读取用户输入的密码,并利用strcmp函数进行比较,判断密码是否正确。如果密码正确,程序将输出“登入成功”,否则,用户将被提示重新输入,直至达到限定次数。

代码如下

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#define times 3
int main(){
	char password[10] = { 0 };
	int i = 0;
	printf("请输入密码\n");
	for (i; i < times; ++i){
		scanf("%s", password);
		//strcmp函数用于比较两个字符串并根据比较结果返回整数。基本形式为strcmp(str1,str2),
		//若str1=str2,则返回零;
		//若str1<str2,则返回负数;
		//若str1>str2,则返回正数。
		if (strcmp(password, "123456") == 0){
			break;
		}
		else{
			printf("密码错误,重新输入\n");
		}
	}
	if (i == times){
		printf("退出系统\n");
	}
	else{
		printf("登入成功\n");
	}
	system("pause");
	return 0;
}
### 非递归方法实现三次密码输入登录场景 以下是使用非递归方法模拟用户登录功能的代码示例,允许用户最多输入三次密码。如果密码正确,则提示登录成功;如果三次输入错误,则退出程序。 ```c #include <stdio.h> #include <string.h> #define MAX_ATTEMPTS 3 // 最大尝试次数 #define CORRECT_PASSWORD "123456" // 正确密码 int main() { int attempts = 0; // 尝试计数器 char password[20]; // 存储用户输入密码 while (attempts < MAX_ATTEMPTS) { // 控制尝试次数 printf("请输入密码: "); scanf("%s", password); // 获取用户输入密码 if (strcmp(password, CORRECT_PASSWORD) == 0) { // 比较输入密码正确密码 printf("登录成功!\n"); return 0; // 成功登录退出程序 } else { attempts++; // 密码错误,增加尝试计数 printf("密码错误!您还有 %d 次机会。\n", MAX_ATTEMPTS - attempts); } } printf("尝试次数过多,程序退出。\n"); // 超过最大尝试次数后退出 return 1; } ``` #### 实现原理 上述代码通过 `while` 循环控制用户的密码输入尝试次数。每次循环中,程序提示用户输入密码,并将其与预设的正确密码进行比较。如果匹配成功,则输出登录成功的消息并退出程序;如果密码错误,则增加尝试计数器的值,并提示剩余尝试次数[^1]。当尝试次数达到设定的最大值时,程序退出提示用户尝试次数过多。 #### 示例运行 假设正确密码为 `123456`,以下为可能的运行情况: - 用户第一次输入 `abc`,程序提示密码错误并显示剩余两次机会。 - 用户第二次输入 `123`,程序提示密码错误并显示剩余一次机会。 - 用户第三次输入 `123456`,程序提示登录成功退出。 - 如果用户三次输入错误密码程序提示尝试次数过多并退出。 #### 注意事项 - 程序中使用了 `strcmp` 函数来比较用户输入密码正确密码是否一致。 - 密码输入限制为 20 个字符,可根据需求调整缓冲区大小。 - 在实际应用中,建议对密码输入进行加密处理以提高安全性。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值