晚风607 2022-01-13 15:56 采纳率: 100%
浏览 29
已结题

C语言小程序设计,初学者,请不要问我为什么这么简单的都不会,我是真的不会-_-||

假设有3个用户,用户名分别为"aaa”,”bbb”,
ccc”。密码分别为"aaa111”,”bbb111”, ”ccc111”。请编写一个程序,首先输入用户名,如果用户名错误请输出“用户不存在!”,程序结束。如果用户名正确,提示输入对应密码,3次密码错误输出“密码错误!”,密码正确屏幕出现4位数字的随机验证码并提示输入。验证码正确,输出“欢迎!”,验证码错误则重新出现新的验证码提示输入。

  • 写回答

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;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月21日
  • 已采纳回答 1月13日
  • 创建了问题 1月13日

悬赏问题

  • ¥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发送完设置的固定帧后,如何使其再发送第一次的帧