假设有3个用户,用户名分别为"aaa”,”bbb”,
ccc”。密码分别为"aaa111”,”bbb111”, ”ccc111”。请编写一个程序,首先输入用户名,如果用户名错误请输出“用户不存在!”,程序结束。如果用户名正确,提示输入对应密码,3次密码错误输出“密码错误!”,密码正确屏幕出现4位数字的随机验证码并提示输入。验证码正确,输出“欢迎!”,验证码错误则重新出现新的验证码提示输入。
C语言小程序设计,初学者,请不要问我为什么这么简单的都不会,我是真的不会-_-||
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- _GX_ 2022-01-13 16:21关注
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <time.h> struct User { char username[10]; char password[10]; }; int main() { struct User users[3] = {{"aaa", "aaa111"}, {"bbb", "bbb111"}, {"ccc", "ccc111"}}; char buffer[10], verification[5]; printf("请输入用户名: "); scanf("%s", buffer); struct User *user = NULL; for (int i = 0; i < 3; i++) if (strcmp(users[i].username, buffer) == 0) user = &users[i]; if (!user) { printf("用户不存在!\n"); return 0; } int count = 0; do { printf("请输入密码: "); scanf("%s", buffer); if (strcmp(user->password, buffer) == 0) { break; } else { printf("密码错误!请重新输入\n"); count++; } } while (count < 3); if (count == 3) { printf("密码错误!\n"); return 0; } srand(time(NULL)); while (1) { sprintf(verification, "%04d", rand() % 10000); printf("请输入验证码%s: ", verification); scanf("%s", buffer); if (strcmp(verification, buffer) == 0) { printf("欢迎\n"); break; } } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥35 引用csv数据文件(4列1800行),通过高斯-赛德尔法拟合曲线,在选取(每五十点取1点)数据,求该数据点的曲率中心。
- ¥20 程序只发送0X01,串口助手显示不正确,配置看了没有问题115200-8-1-no,如何解决?
- ¥15 Google speech command 数据集获取
- ¥15 vue3+element-plus页面崩溃
- ¥15 像这种代码要怎么跑起来?
- ¥15 安卓C读取/dev/fastpipe屏幕像素数据
- ¥15 pyqt5tools安装失败
- ¥15 mmdetection
- ¥15 nginx代理报502的错误
- ¥100 当AWR1843发送完设置的固定帧后,如何使其再发送第一次的帧