求大神神驾到对于处于水生火热之中的小白指点一二

#include
int main()
{
int i=1;
while(i<=6)
{
char m;
printf("Input your password:\n");
scanf("%c",&m);
if(m>='0'&&m<='9')
{
printf("%c, you have enter %d-bits number\n",m,i);
i++;
}
else
printf("error\n");
goto printf("Input your password:\n");
scanf("%c",&m);
}
return 0;
}
这个代码哪里错了?
望大神不吝赐教

1.goto的用法错误,顺便说一句如果不是跳出多层循环,一般不用goto
2.逻辑也很有问题,不知道楼主要干嘛
3.scanf %c是可以读取回车符的,也就是说你输入:234+回车符,一共会有4次循环(最后m读入了回车符)
帮你改了goto,另外的自己改下,或者再留言

 #include<stdio.h>
int main()
{
    int i = 1;
    while (i <= 6)
    {
        char m;
        print_pwd:
        printf("Input your password:\n");
        scanf("%c", &m);
        if (m >= '0'&&m <= '9')
        {
            printf("%c, you have enter %d-bits number\n", m, i);
            i++;
        }
        else
            printf("error\n");
        goto print_pwd;
        scanf("%c", &m);
    }
    return 0;
}
 #include <stdio.h>
int main()
{
    int num;
    char c;
    num = 0;
    printf("Input your password:\n");
    while (num<  6)
    {
        scanf("%c%*c", &c);//%*c用来过滤掉回车符
        if (c >= '0'&&c <= '9')
        {
            num++;
            printf("%c, you have enter %d-bits number\n", c, num);
        }
        else printf("error\n");
    }
}