求大佬们解答,孩子写了一半后面不会了

程序设计:假设有三个用户,用户名分别是a,b,c,密码分别是111, 222,  333请编写一个程序,首先输入用户名,如果用户名错误请输出用户不存在,程序结束,如果用户正确,提示输入对应密码,密码正确输出欢迎,密码错误,输出密码错误

#include "stdio.h"
#include "string.h"
struct users{
    char name[10];
    int password;
} user[3]={
    {"a",111},
    {"b",222},
    {"c",333}
};
int main(){
    char ch[10];
    int i;
    int pass;
    gets(ch);
    for(i=0;i<3;i++){
        if(strcmp(user[i].name,ch)==0){
            printf("请输入密码");
            scanf("%d",&pass);
            if(user[i].password==pass){
                printf("欢迎%s\n",ch);
            }else{
                printf("密码错误\n",ch);
            }
            break;
        }
    }
    if(i==3){
        printf("用户%s不存在",ch);
    }
    
 
}
typedef struct _user
{
    char name[20];
    char pass[20];
}user;
void main()
{
    user users[3];
    int i=0;
    for(i=0;i<3;i++)
        scanf("%s %s",users[i].name,users[i].pass);
    //
    char name[20];
    scanf("%s",name);
    int j = -1;
    for(i=0;i<3;i++)
        if(strcmp(users[i].name,name) == 0)
        {
            j=i;
            break;
        }
    if(j == -1)
        printf("输入的用户不存在\n");
    else
    {
        printf("请输入密码:");
        char pass[20];
        scanf("%s",pass);
        if(strcmp(users[j].pass,pass) == 0)
            printf("欢迎!");
        else
            printf("密码错误");
    }
}

用两重判断就可以了啊,你难点在哪呢?

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632