分值 : 20 难度 : 水题 思路 : 读入一一存起来,然后替换一下,没有替换之后就不输出 坑点 : 没有替换情况下,输出的东西还分 N==1 和 N>1 评语 : 细心就好
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
#include <iostream>#include <string>using namespace std ;#define L(i,N,K) for(int i=0 ; i< N ;i+=K)typedef struct Node{ string name ; string pass ; bool flag ;}Nodes ;Nodes data[1001] ;void judge(int x){ string temp = data[x].pass; L(i,temp.length(),1) { if( data[x].pass[i] == '1') { data[x].pass[i] ='@' ;data[x].flag=true ; } if( data[x].pass[i] == '0') { data[x].pass[i] ='%' ;data[x].flag=true ; } if( data[x].pass[i] == 'l') { data[x].pass[i] ='L' ;data[x].flag=true ; } if( data[x].pass[i] == 'O') { data[x].pass[i] ='o' ;data[x].flag=true ; } }}int main() { int N ; cin>> N ; L(i,N,1) { cin>>data[i].name>>data[i].pass ; data[i].flag = false ; } int count = 0 ; L(i,N,1) { judge(i) ; if(data[i].flag) count++ ; } if(!count) { if(N>1) printf("There are %d accounts and no account is modified\n",N) ; else if(N==1) printf("There is 1 account and no account is modified") ; } else { cout << count <<endl ; L(i,N,1) { if(data[i].flag) cout << data[i].name <<" "<<data[i].pass<<endl ; } } return 0 ;}