1035. Password (20)
来源:互联网 发布:匕首cad图纸数据 编辑:程序博客网 时间:2024/06/12 12:18
1035. Password (20)
To prepare for PAT, the judge sometimes has to generate random passwords for the users. The problem is that there are always some confusing passwords since it is hard to distinguish 1 (one) from l (L in lowercase), or 0 (zero) from O (o in uppercase). One solution is to replace 1 (one) by @, 0 (zero) by %, l by L, and O by o. Now it is your job to write a program to check the accounts generated by the judge, and to help the juge modify the confusing passwords.
Input Specification:
Each input file contains one test case. Each case contains a positive integer N (<= 1000), followed by N lines of accounts. Each account consists of a user name and a password, both are strings of no more than 10 characters with no space.
Output Specification:
For each test case, first print the number M of accounts that have been modified, then print in the following M lines the modified accounts info, that is, the user names and the corresponding modified passwords. The accounts must be printed in the same order as they are read in. If no account is modified, print in one line "There are N accounts and no account is modified" where N is the total number of accounts. However, if N is one, you must print "There is 1 account and no account is modified" instead.
Sample Input 1:
3Team000002 Rlsp0dfaTeam000003 perfectpwdTeam000001 R1spOdfaSample Output 1:
2Team000002 RLsp%dfaTeam000001 R@spodfaSample Input 2:
1team110 abcdefg332Sample Output 2:
There is 1 account and no account is modifiedSample Input 3:
2team110 abcdefg222team220 abcdefg333Sample Output 3:
There are 2 accounts and no account is modified
提交代码
题目意思不难,将密码中的‘1’改为‘@’,0改为%,l改为L,O改为o,如果有修改的,先输出修改的密码数量再输出修改后的密码。如果没有就需要注意了,如果N==1输出那里是 is和account而如果大于1则是are和accounts。巨坑。
#include<stdio.h>#include<string.h>#define N 1010struct node{char name[20];char pass[20];bool flag;}a[N];int main(){int n,cnt = 0;//freopen("input.txt","r",stdin);scanf("%d",&n);for(int i = 0;i < n;i++){scanf("%s %s",a[i].name,a[i].pass);a[i].flag = false;int len = strlen(a[i].pass);for(int j = 0;j < len;j++){if(a[i].pass[j] == '1'){a[i].pass[j] = '@';a[i].flag = true;}else if(a[i].pass[j] == '0'){a[i].pass[j] = '%';a[i].flag = true;}else if(a[i].pass[j] == 'l'){a[i].pass[j] = 'L';a[i].flag = true;}else if(a[i].pass[j] == 'O'){a[i].pass[j] = 'o';a[i].flag = true;}}if(a[i].flag == true){cnt++;}}if(cnt==0){if(n>1){printf("There are %d accounts and no account is modified\n",n);}else if(n==1){printf("There is %d account and no account is modified\n",n);}}else{printf("%d\n",cnt);for(int i = 0;i < n;i++){if(a[i].flag == true){printf("%s %s\n",a[i].name,a[i].pass);}}}return 0;}
- 1035. Password (20)
- 【PAT】1035. Password (20)
- 1035. Password (20)-PAT
- 1035. Password (20)
- 1035. Password (20)
- 1035. Password (20)
- PAT 1035. Password (20)
- 1035. Password (20)
- 1035. Password (20)
- 1035. Password (20)
- 1035. Password (20)
- 1035. Password (20)
- 1035. Password (20)
- 1035. Password (20)
- 1035. Password (20)
- 1035. Password (20)
- 1035. Password (20)
- pat 1035. Password (20)
- 79. Word Search
- Unity3D面试题整合——第四部分及答案
- Linux操作系统命令学习第八天
- Java多线程系列(六)—AQS源码分析
- 复数实现
- 1035. Password (20)
- 基于51的1602时钟显示
- Spring boot打包部署
- effective java(13) 之使类和成员的可访问性最小化
- $.ajax()方法详解
- 实验楼之一个简单的课程数据库
- Oracle中before触发器中伪列的使用
- 数据类型
- Windows编程基础--第2节 win32程序资源管理