题目链接
注意事项
1 只说了密码不超过20个字符,用户输入不一定只有20个字符,否则最后一组测试用例过不了。2 用户输入的密码可能包含空格等空白字符,所以用户输入密码时需要用gets,而不能是scanf。
代码
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(){
char passwd[21],input[10][100],temp_input[100];
int N,i,input_valid_len;
scanf("%s %d",passwd,&N);
getchar(); //过滤掉\n
gets(temp_input);
i= 0;
while(strcmp(temp_input,"#") && i<N ){
strcpy(input[i],temp_input);
i++;
gets(temp_input);
}
while(strcmp(temp_input,"#")){
gets(temp_input);
}
input_valid_len = i;
for(i = 0;i<input_valid_len;i++){
if(strcmp(input[i],passwd)){
printf("Wrong password: %s\n",input[i]);
}
else{
printf("Welcome in");
break;
}
}
if(i == N) //在寻找达到系统上限时,额外输出。
printf("Account locked");
return 0;
}