| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1281 人关注过本帖
标题:错误在哪? 编写一个程序,实现用户名与密码检查功能
只看楼主 加入收藏
菜鸟高手菜鸟
Rank: 1
等 级:新手上路
帖 子:14
专家分:8
注 册:2012-11-18
结帖率:75%
收藏
已结贴  问题点数:16 回复次数:2 
错误在哪? 编写一个程序,实现用户名与密码检查功能







2、    编写一个程序,实现用户名与密码检查功能。键盘提示输入一个用户名,然后提示输入相应的密码,将输入的用户名、密码与自己设定的用户名、密码进行比较(用户名不区分大小写,且前后允许有空格),如果输入正确,屏幕输出“欢迎使用计算机!”,否则如用户名不对输出“用户不存在!”,提示重新输入用户名,如密码不对输出“密码不正确!”,提示再次输入密码,最多可输3次密码,3次均错输出“计算机已锁定,将无法使用!”。要求输入的口令以*显示,例如输入123,屏幕不能显示123,以***显示。# include
# include
# include
int main()
{
    char name[4]={"abcd"},key[4]={"1234"};
    char use[10],pass[10];
    int i,j,m,x,y,n=0;
    for(m=0;m<3;m++)
    {

            printf("输入用户名: ");
        gets(use);
        for(i=0;i<4;i++)
    //    while((j=!='\n')
        {
            j=use[i];
        if(j>='A'&&j<='Z')
            use[i]=j+32;
        if(j==' ')
         use[i]=use[i+1];
        use[4]='\0';
        }
        x=strcmp(use,name);
        printf("输入密码: ");
        while((pass[n++]=getch())!='\r')
        {
            pass[n-1]='\0';
            printf("*");}
        y=strcmp(pass,key);
        if(x==0&&y==0)
            printf("欢迎使用计算机!");
        else if(x!=0)
            printf("用户不存在\n");
        else if(y!=0)
            printf("密码不正确");//}

    while(m=3)
        printf("计算机已锁定,将无法使用");//break;}
    }
    return 0;
}
  
 
搜索更多相关主题的帖子: 密码 区分大小写 include 用户名 
2012-11-28 17:38
heroinearth
Rank: 10Rank: 10Rank: 10
来 自:云南曲靖
等 级:青峰侠
帖 子:430
专家分:1506
注 册:2011-10-24
收藏
得分:15 
你包含的是什么头文件
你的代码逻辑上错误很多,输入用户名中固定循环四次,但是你允许输入的用户名不止4个,并且当为空格时,你只复制了个数,再后面的没有跟上,直接改变了原有内容,
    while(m=3)//这里你应用if吧,如果m=3就进入死循环
        printf("计算机已锁定,将无法使用");//break;}
程序代码:
# include<stdio.h>
# include<string.h>

int main()
{
    char name[5]={"abcd"},key[5]={"1234"};//数组改为5
    char use[10],pass[10];
    char c;
    int i,j,m,x,y,n=0;
    for(m=0;m<3;m++)
    {

        printf("输入用户名: ");
        gets(use);
        i=0;
        while(use[i]!='\0')
        {
            if(use[i]==' ')
            {
                j=i;
                while(use[j]!='\0')
                {
                    use[j]=use[j+1];
                    j++;
                }
            }
            else if(use[i]>='A'&&use[i]<='Z')
            {
                use[i]=use[i]+32;
                i++;
            }
            else
                i++;
        }
        printf("%s_\n",use);
        x=strcmp(use,name);
        printf("输入密码: ");
        while((pass[n++]=getch())!='\r')
        {
           
            printf("*");
        }
        pass[4]='\0';
        y=strcmp(pass,key);
        if(x==0&&y==0)
            printf("欢迎使用计算机!");
        else if(x!=0)
            printf("用户不存在\n");
        else if(y!=0)
            printf("密码不正确");//}

        if(m==2)
            printf("计算机已锁定,将无法使用");//break;}
    }
    return 0;
}
后面的没有改,不管输入正确与否都要输入3次

[ 本帖最后由 heroinearth 于 2012-11-29 09:20 编辑 ]
2012-11-29 08:35
mmmmmmmmmmmm
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:8
帖 子:388
专家分:1809
注 册:2012-11-2
收藏
得分:1 
楼上已解决

我们的目标只有一个:消灭0回复!
while(1)
++money;
2012-11-29 13:24
快速回复:错误在哪? 编写一个程序,实现用户名与密码检查功能
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039229 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved