目前就测试点2过不去了,看到网上很多dl说测试点2是用户尝试只输入一个#,我在测试区只输入一个#发现没有输出。请问我的代码需要如何修改?
另外测试用例如果用户的尝试只是一个空格键的情况需要考虑吗?(我现在的输出会自动跳过只有空格的那一行)
#include<stdio.h>
#include<string.h>
int min(int a,int b){
if (a<b)
return a;
else
return b;
}
int main(){
int j,i,N,k,r;
int len_c;//记录正确密码的长度
char correct[21];
scanf("%s %d\n",correct,&N);//读入允许尝试的最大次数
char t[N][200];
for (i=0;i<N;i++)//读入用户的尝试,且读入的尝试仅限于N条
{
gets(t[i]);
if (t[i][0]=='#' && strlen(t[i])==1)//单一的#字符,说明是尝试截止
break;
}
k = i;
for (i=0;i<min(N,k);i++)
{
r = 1;//假设刚进来都是正确的
if (strcmp(t[i],correct)!=0)//字符不相等
r = 0;
if (r==0)
{
printf("Wrong password: %s\n",t[i]);
if (i==N-1)//说明是最后一次尝试仍然出错了
printf("Account locked\n");
}
else //r==1的情况,说明是正确的
{
printf("Welcome in\n");
break;
}
}
return 0;
}