A1035 Password (20)(20 分)
A1035 Password (20)(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:
3
Team000002 Rlsp0dfa
Team000003 perfectpwd
Team000001 R1spOdfa
Sample Output 1:
2
Team000002 RLsp%dfa
Team000001 R@spodfa
Sample Input 2:
1
team110 abcdefg332
Sample Output 2:
There is 1 account and no account is modified
Sample Input 3:
2
team110 abcdefg222
team220 abcdefg333
Sample Output 3:
There are 2 accounts and no account is modified
思考
c++的引用很方便,传递参数,传递了操作对象本身,灵魂附体。
c语言没有引用,只能指针取地址。
AC代码
c语言
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
struct node {
char name[20], password[20];
bool ischange;
}T[1005];
/*在C语言中是不存在引用的,也就是说C语言中&表示的不是引用,仅仅是取地址符。所以错误提示就是告诉你&在这里用的不对,那怎么解决呢?
首先介绍一个正规的解决方法:用指针来取代引用,在主函数中传进来地址;*/
void crypt(struct node* t, int* cnt) {//c语言结构体必须加struct,typedef可解决此类问题
int len = strlen(t->password);
for(int i = 0; i < len; i++) {
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) {
(*cnt)++;//优先级很重要,先解指针,再自增1,遇到优先级没把握,加括号,都加上
}
}
int main() {
int n, cnt = 0;
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);
}
if(cnt == 0) {
if(n == 1) printf("There is %d account and no account is modified", n);
else {
printf("There are %d accounts and no account is modified", n);
}
}else {
printf("%d\n", cnt);
for(int i = 0; i < n; i++) {
if(T[i].ischange) {
printf("%s %s\n", T[i].name, T[i].password);
}
}
}
return 0;
}
c++
#include <cstdio>
#include <cstring>
struct node {
char name[20], password[20];
bool ischange;
}T[1005];
void crypt(node& t, int& cnt) {//引用,可以对传入参数进行修改
int len = strlen(t.password);
for(int i = 0; i < len; i++) {
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) {
cnt++;
}
}
int main() {
int n, cnt = 0;
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);
}
if(cnt == 0) {
if(n == 1) printf("There is %d account and no account is modified", n);
else {
printf("There are %d accounts and no account is modified", n);
}
}else {
printf("%d\n", cnt);
for(int i = 0; i < n; i++) {
if(T[i].ischange) {
printf("%s %s\n", T[i].name, T[i].password);
}
}
}
return 0;
}
A1035 Password (20)(20 分)的更多相关文章
- 1035 Password (20 分)
1035 Password (20 分) To prepare for PAT, the judge sometimes has to generate random passwords for th ...
- PAT 甲级 1035 Password (20 分)
1035 Password (20 分) To prepare for PAT, the judge sometimes has to generate random passwords for th ...
- pat 1035 Password(20 分)
1035 Password(20 分) To prepare for PAT, the judge sometimes has to generate random passwords for the ...
- MVC4 学习笔记 之 URL中存在编译的空格 20%20%
/Config/Edit/QQCC%20%20%20%20%20%20%20 原因是: 通过EF直接添加了空格? NO 是因为你的数据库字段设计问题,因为你当然设计如>:sID nchar(10 ...
- 2016年11月29日 星期二 --出埃及记 Exodus 20:20
2016年11月29日 星期二 --出埃及记 Exodus 20:20 Moses said to the people, "Do not be afraid. God has come t ...
- 安装nginx环境(含lua)时遇到报错ngx_http_lua_common.h:20:20: error: luajit.h: No such file or directory的解决
下面是安装nginx+lua环境时使用的相关模块及版本,ngx_devel_kit和lua-nginx-module模块用的都是github上最新的模块.并进行了LuaJIT的安装. #Install ...
- PAT A1035 Password (20)
AC代码 注意创造函数条件中使用引用 输出语句注意单复数 #include <cstdio> #include <cstring> #include <iostream& ...
- 1035 Password (20 分)(字符串)
注意下单复数 #include<bits/stdc++.h> using namespace std; pair<string,string>pa; int main() { ...
- 做数据挖掘,就算发 20 几分的 CNS 子刊,也是垃圾!?--转载
关于数据挖掘发表文章,我们知道很多人是看不上.瞧不起.嗤之以鼻的.大抵是因为这些人平时只发 CNS 主刊,所以才认为通过数据挖掘这种用「别人的数据」或者叫「干实验」来发文章是“「垃圾」,没有什么价值. ...
随机推荐
- Java Web项目在Mac系统上启动时提示nodename nor servname provided的解决办法
今天在Mac系统上启动Java Web项目的时候,提示了Java.net.UnknownHostException: yangxiaomindeMacBook-Pro.local nodename n ...
- jQuery 方法 属性
Attribute:$("p").addClass(css中定义的样式类型); 给某个元素添加样式$("img").attr({src:"test.j ...
- Oracle存储函数jdbc调用
package com.jckb.procedure; import java.sql.CallableStatement; import java.sql.Connection; import ja ...
- VS2008 Pocket PC 2003 SE VGA仿真程序网络设置
最近对这个问题摸索的很久,都没有解决,今天终于搞定,现将大体设置步骤记录下来,以备回顾和方便别人查看,步骤如下: 1.打开VS2008,打开Windows Mobile设备中心(网上有下载). 2.连 ...
- 数据字典的设计--3.首页添加删除表格(JS实现)
页面效果: JS代码: 1.添加表格 function insertRows(){ //获取表格对象 var tb1 = $("#dictTbl"); var tempRow = ...
- hihoCoder 挑战赛10 #1144 : 01串
思路:这只是逻辑测试题吧,考虑周全就行了.考虑n=m的情况,n>m的情况,m>n的情况. (1)n>m的情况,0比1多几个都是行的,一共有m个“01”,后面补足够多个零即可. (2) ...
- Extjs4.1+desktop+SSH2 定义程序入口
app.js定义程序入口: MainController.js: 加载控制器: 外部组件引用入口loader.js 时间组件 静态变量组件: 引入comm.js index.jsp 验证打印 comm ...
- iOS支付宝 9.x 版本首页效果
http://www.jianshu.com/p/7516eb852cca 支付宝 9.x 版本首页效果 对于新版支付宝首页的产品功能这里就不说什么了,一大堆人吐槽,我们只想要一个好好的支付工具,阿里 ...
- Wired Memory
https://developer.apple.com/library/content/documentation/Performance/Conceptual/ManagingMemory/Arti ...
- 【BZOJ1101】[POI2007] Zap(莫比乌斯反演)
点此看题面 大致题意: 求\(\sum_{x=1}^N\sum_{y=1}^M[gcd(x,y)==d]\). 一道类似的题目 推荐先去做一下这道题:[洛谷2257]YY的GCD,来初步了解一下莫比乌 ...