【PAT甲级】1035 Password (20 分)

题意:

输入一个正整数N(<=1000),接着输入N行数据,每行包括一个ID和一个密码,长度不超过10的字符串,如果有歧义字符就将其修改。输出修改过多少组密码并按输入顺序输出ID和修改后的密码,如果没有修改过就输出There are N accounts and no account is modified。(根据样例如果N==1,are改成is并且accounts不加s)

AAAAAccepted code:

 1 #define HAVE_STRUCT_TIMESPEC
 2 #include<bits/stdc++.h>
 3 using namespace std;
 4 char s[1007][17];
 5 char x[1007][17];
 6 int ans[1007];
 7 int main(){
 8     int n;
 9     cin>>n;
10     int cnt=0;
11     for(int i=1;i<=n;++i){
12         cin>>x[i];
13         cin>>s[i];
14         int flag=0;
15         for(int j=0;s[i][j]!=0;++j)
16             if(s[i][j]=='1')
17                 s[i][j]='@',flag=1;
18             else if(s[i][j]=='0')
19                 s[i][j]='%',flag=1;
20             else if(s[i][j]=='l')
21                 s[i][j]='L',flag=1;
22             else if(s[i][j]=='O')
23                 s[i][j]='o',flag=1;
24         if(flag)
25             ans[++cnt]=i;
26     }
27     if(!cnt&&n==1)
28         cout<<"There is "<<n<<" account and no account is modified";
29     else if(!cnt&&n>1)
30         cout<<"There are "<<n<<" accounts and no account is modified";
31     else{
32         cout<<cnt<<"
";
33         for(int i=1;i<=cnt;++i)
34             cout<<x[ans[i]]<<" "<<s[ans[i]]<<"
";
35     }
36     return 0;
37 }
保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
原文地址:https://www.cnblogs.com/ldudxy/p/11545381.html