(标签-AR|关键词-代码块)

以下代码块功能实现:
模拟用户登录情形,并且只能登录三次.(只允许输入三次,密码正确进入,三次以上错误退出)

问题:
代码块正确,能运行,但最后弹窗不懂怎么修改

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
//编写代码实现,模拟用户登录情形,并且只能登录三次.(只允许输入三次,密码正确进入,三次以上错误退出)



int main() {
    char password[] = "abcD1234";
    char userPassword[] = "";//定义空字符串
    int i = 0;
    for (i = 0; i < 3; i++) {
        printf("请输入密码:\n");
        scanf("%s", &userPassword);
        if (strcmp(password, userPassword) == 0) {
            printf("输入正确,正在登入\n");
            break;
        }
        else
        {
            printf("密码错误\n");
        }
    }
    if (i == 3)
        printf("多次密码错误,正在退出程序\n");
    return 0;
        


}
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/552333447396126.png "#left")


img

第10行: char userPassword[] = "";//定义空字符串 数组大小定义错误,修改为: char userPassword[10] = { 0 };

【以下回答由 GPT 生成】

你可以使用C语言中的条件语句(if-else)来修改代码块中的弹窗显示问题。根据登录结果,决定显示不同的弹窗信息。下面是修改后的代码块:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
#include <stdbool.h>  // 添加头文件

int main() {
    char password[] = "abcD1234";
    char userPassword[20];  // 修改为数组大小为20的字符数组
    int i = 0;

    for (i = 0; i < 3; i++) {
        printf("请输入密码:\n");
        scanf("%s", userPassword);  // 不需要使用取地址符号&
        if (strcmp(password, userPassword) == 0) {
            printf("输入正确,正在登录\n");
            break;
        }
        else {
            printf("密码错误\n");
        }
    }

    if (i == 3)
        printf("多次密码错误,正在退出程序\n");
    else
        printf("登录成功\n");

    return 0;
}

这样的话,当用户密码输入正确时,会显示"输入正确,正在登录";当用户密码错误时,会显示"密码错误";当用户连续三次输入错误密码后,会显示"多次密码错误,正在退出程序";而当用户成功登录时,会显示"登录成功"。这样就解决了弹窗显示问题。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^