第二个测试点没有过的话,很有可能是在输出时直接复制了上面的话,然后仅修改了n
注意account和accounts还有is和are
#include <stdio.h>
#include <vector>
#include <cstring>
using namespace std;
struct person{
char name[20];
char pass[20];
}node[1010];
vector<person> modify;
int main(){
int n;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%s %s",node[i].name,node[i].pass);
int len=strlen(node[i].pass);
bool flag=false;
for(int j=0;j<len;j++){
char temp=node[i].pass[j];
switch (temp){
case '1':{
node[i].pass[j]='@';
flag=true;
break;
}
case '0':{
node[i].pass[j]='%';
flag=true;
break;
}
case 'l':{
node[i].pass[j]='L';
flag=true;
break;
}
case 'O':{
node[i].pass[j]='o';
flag=true;
break;
}
}
}
if(flag==true){
modify.push_back(node[i]);
}
}
int cnt=modify.size();
if(cnt==0){
if(n==1){
printf("There is 1 account and no account is modified");
}else{
printf("There are %d accounts and no account is modified",n);
}
}else{
printf("%d\n",cnt);
for(int i=0;i<cnt;i++){
printf("%s %s\n",modify[i].name,modify[i].pass);
}
}
return 0;
}