当前位置 : 主页 > 编程语言 > java >

【1035】Password (20 分)

来源:互联网 收集:自由互联 发布时间:2022-07-17
#includeiostream #includestdio.h #includestdlib.h #includemath.h #includestring.h #includealgorithm #includemap #includevector #includequeue using namespace std ; //判断密码是否需要修改,注意对结构体的使用和函数的结构


#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<algorithm>
#include<map>
#include<vector>
#include<queue>
using namespace std;
//判断密码是否需要修改,注意对结构体的使用和函数的结构化
struct node{
char name[20],password[20];
bool ischange; //ischange==true表示password已被修改
}T[1005];

//crypt函数判断t的password是否需要被修改,若需要则对其修改并令计数器cnt加1
void crypt(node& t,int& cnt){
int len=strlen(t.password);
for(int i=0;i<len;i++){//枚举password的每一位
if(t.password[i]=='1'){
t.password[i]='@';
t.ischange=true;
}else if(t.password[i]=='0'){
t.password[i]='%';
t.ischange=true;
} else if(t.password[i]=='l'){
t.password[i]='L';
t.ischange=true;
}else if(t.password[i]=='O'){
t.password[i]='o';
t.ischange=true;
}
}
if(t.ischange){ //如果t的password已修改,则令计数器cnt加1
cnt++;
}
}

int main(){
int n,cnt=0;//cnt记录需要修改的password个数
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%s %s",T[i].name,T[i].password);
T[i].ischange=false; //初始化所有密码未修改
}
for(int i=0;i<n;i++){
crypt(T[i],cnt); //对T[i]的password判断是否需要修改
}
if(cnt==0){ //没有password需要修改
if(n==1){
printf("There is %d account and no account is modified",n);
}else{ //注意这里account的单复数和is/are的使用
printf("There are %d accounts and no account is modified",n);
}
}else{ //如果有password需要修改
printf("%d\n",cnt); //修改的password个数
for(int i=0;i<=n;i++){
//如果T[i]的password需要修改,则输出name和password
if(T[i].ischange){
printf("%s %s\n",T[i].name,T[i].password);
}
}
}
system("pause");
return 0;
}

 

上一篇:【1022】Digital Library (30 分)
下一篇:没有了
网友评论