#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");
}
}