lyh33897 发表于 2021-1-15 21:45:05

求助

两个问题
1.怎样修改才能使密码错误时,显示显示出”请输入密码“,密码正确时按任意键继续
2.如何让密码数字长度任意、含大小写英文




#include<stdio.h>
int main()
{       
        int key;
        scanf("%d%d%d",&key);
        do printf("请输入密码:");
        while(key==123);
        return 0;
}

昨非 发表于 2021-1-15 21:49:45

#include<stdio.h>
int main()
{
        int key;
        do{
                printf("请输入密码:");
                scanf("%d", &key);
          }while (key != 123);
        return 0;
}

测试结果:
请输入密码:122
请输入密码:124
请输入密码:125
请输入密码:123

jackz007 发表于 2021-1-15 21:54:19

#include <stdio.h>
#include <string.h>

int main()
{      
      char p                                       ;
      for(;;) {
                printf("请输入密码:")                     ;
                gets(p)                                    ;
                printf("\n")                               ;
                if(! strcmp(p , "123")) {
                        printf("按下任意键. . .")          ;
                        getchar()                        ;
                        break                              ;
                } else {
                        printf("密码错误,请重新输入!\n") ;
                        printf("\n")                     ;
                }
      }
}

烂泥化刚 发表于 2021-1-16 01:04:17

楼主的这个问题很有意思,如果想在“key”下存储输入的密码同时问题2中还想让key中储存字母
key这是就不能只是“int”类型了,应该是字符串类型
然后合理的想到用字符串处理函数并导入该函数库<string.h>
https://fishc.com.cn/thread-70567-1-1.html于是1、2问题就都能解决了
修改之后代码如下
#include <stdio.h>
#include <string.h>

int main()
{
      char key;
      char rkey = "123abc";//这里举例用123abc来做正确密码,字符串于是就有6+1=7个字符

      for(;;)
      {
                printf("请输入密码\n");
                for(int i = 0; i < 6; i++)//这里采集用户输入的6位数密码
                {key = getchar();}
      
                if(strcmp(key, rkey))
                        {printf("密码错误\n");}
                else
                        {printf("密码正确\n");
                        break;}
      }

      return 0;
}

话说大佬们都是怎么把代码引入对话框的鸭{:10_245:}

lyh33897 发表于 2021-1-16 09:56:48

烂泥化刚 发表于 2021-1-16 01:04
楼主的这个问题很有意思,如果想在“key”下存储输入的密码同时问题2中还想让key中储存字母
key这是就不能 ...

大神,您的代码好像有点小问题
代码引入对话框,好像是,回复栏最上面的一行,表情左边的图标<>

烂泥化刚 发表于 2021-1-16 11:18:36

本帖最后由 烂泥化刚 于 2021-1-16 12:34 编辑

在if语句上面一行加
getcgar();即可
#include <stdio.h>
#include <string.h>

int main()
{
        char key;
        char rkey = "123abc";//这里举例用123abc来做正确密码于是字符串就有6+1=7个字符

        for(;;)
        {
                printf("请输入密码:\n");
                for(int i = 0; i < 6; i++)//这里采集用户输入的6位密码 并在后面丢弃一个”\n“
                {key = getchar();}
                getchar();
                if(strcmp(key, rkey))
                        {printf("密码错误\n");}
                else
                        {printf("密码正确\n");
                        break;}
        }

        return 0;
}
页: [1]
查看完整版本: 求助