PAT A1035 Password (20)
AC代码
- 注意创造函数条件中使用引用
- 输出语句注意单复数
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
struct Usr {
    bool flag;
    char id[20];
    char pwd[20];
}usr[1010];
void modify(Usr& a) { //参数使用了引用&,可以对传入参数进行修改
    for(int i = 0; i < 10; i++) {
        char b = a.pwd[i];
        if(b == '1') {
            a.pwd[i] = '@';
            a.flag = 0;
        }
        if(b == '0') {
            a.pwd[i] = '%';
            a.flag = 0;
        }
        if(b == 'l') {
            a.pwd[i] = 'L';
            a.flag = 0;
        }
        if(b == 'O') {
            a.pwd[i] = 'o';
            a.flag = 0;
        }
    }
}
void init_flag(Usr& a) {
    a.flag = 1;
}
int main() {
    #ifdef ONLINE_JUDGE
    #else
        freopen("1.txt", "r", stdin);
    #endif // ONLINE_JUDGE
    int n;
    scanf("%d", &n); //输入密码数量
    for(int i = 0; i < n; i++) {
        scanf("%s %s", usr[i].id, usr[i].pwd);
    }
//    for(int i = 0; i < n; i++) {
//        printf("%s %s\n", usr[i].id, usr[i].pwd);
//    }
//    printf("------------------------------\n");
    int num = 0; //需要修改的密码数量
    //初始化flag
    for(int i = 0; i <= n; i++) {
        init_flag(usr[i]);
//        printf("init:%s %s %d\n", usr[i].id, usr[i].pwd, usr[i].flag);
        modify(usr[i]);
//        printf("%s %s %d\n", usr[i].id, usr[i].pwd, usr[i].flag);
        if(usr[i].flag == 0) {
            num++;
        }
    }
//    printf("------------------------------\n");
//    for(int i = 0; i < n; i++) {
//        printf("%s %s %d\n", usr[i].id, usr[i].pwd, usr[i].flag);
//    }
//    printf("------------------------------\n");
//    printf("%d\n", num);
    if(num != 0) {
        printf("%d\n", num);
        for(int i = 0; i <= n; i++) {
            if(usr[i].flag == 0) {
                printf("%s %s\n", usr[i].id, usr[i].pwd);
            }
        }
    } else if(n == 1){
        printf("There is %d account and no account is modified", n);
    } else if(n > 1) {
        printf("There are %d accounts and no account is modified", n);
    }
    return 0;
}
PAT A1035 Password (20)的更多相关文章
- A1035 Password (20)(20 分)
		A1035 Password (20)(20 分) To prepare for PAT, the judge sometimes has to generate random passwords f ... 
- PAT A1035 Password
		题目描述: To prepare for PAT, the judge sometimes has to generate random passwords for the users. The pr ... 
- PAT 甲级 1035 Password (20 分)(简单题)
		1035 Password (20 分) To prepare for PAT, the judge sometimes has to generate random passwords for ... 
- PAT (Advanced Level) Practice 1035 Password (20 分) 凌宸1642
		PAT (Advanced Level) Practice 1035 Password (20 分) 凌宸1642 题目描述: To prepare for PAT, the judge someti ... 
- pat1035. Password (20)
		1035. Password (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue To prepare f ... 
- pat 1035 Password(20 分)
		1035 Password(20 分) To prepare for PAT, the judge sometimes has to generate random passwords for the ... 
- PAT甲级——1035 Password (20分)
		To prepare for PAT, the judge sometimes has to generate random passwords for the users. The problem ... 
- 【PAT】1035. Password (20)
		题目:http://pat.zju.edu.cn/contests/pat-a-practise/1035 分析:简单题.直接搜索,然后替换,不会超时,但是应该有更好的办法. 题目描述: To pre ... 
- PAT Advanced 1035 Password (20 分)
		To prepare for PAT, the judge sometimes has to generate random passwords for the users. The problem ... 
随机推荐
- 决策树算法的Python实现—基于金融场景实操
			决策树是最经常使用的数据挖掘算法,本次分享jacky带你深入浅出,走进决策树的世界 基本概念 决策树(Decision Tree) 它通过对训练样本的学习,并建立分类规则,然后依据分类规则,对新样本数 ... 
- 关于hbase的数据迁移
			场景: 一套自己编译的Hbase集群 A 一套自己通过cloudera平台搭建的Hbase集群 B 注意:( 我的两套集群是同一个网段的) 方式1:通过快照方式进行数据迁移(不需要提前建表) 1):首 ... 
- CF1204A
			CF1204A. BowWow and the Timetable 题意: 给你一个2进制数,求这个2进制数在10进制中的 $ 4^i $ 的个数. 解法: 其实就是 $ \ulcorner_{\lo ... 
- 修改checkbox样式-1
			说明 使用伪类来对复选框进行样式修改.以下以最简单的一个样式修改为实例进行说明. 步骤介绍: 将一个label与复选框进行绑定,将两者放在同一个div下 调整 label的外部样式使其作为复选框的外形 ... 
- 【Android】【踩坑日记】解决Error:SSL peer shut down incorrectly
			前提条件 http://services.gradle.org/distributions/ 复制到浏览浏览器能打开 下一步 打开Android studiogradle version 配置文件进行 ... 
- leetcode题目234.回文链表(快慢指针+辅助空间-简单)
			题目描述: 请判断一个链表是否为回文链表. 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶: 你能否用 O( ... 
- Android input输入框 移动页面input手机键盘中的“搜索”按键
			动页面input手机键盘中的“搜索”按键 满足以下几点机即可: input type="search" 放到form标签中 使用action属性 <form ac ... 
- 基于角色的权限控制系统(role-based access control)
			role-based access control(rbac),指对于不同角色的用户,拥有不同的权限 .用户对应一个角色,一个角色拥有若干权限,形成用户-角色-权限的关系,如下图所示.当一个用户进行访 ... 
- ios wkwebview allowFileAccessFromFileURLs
			最近在做 cordova 打包 ios 的项目(webpack 打包 vue项目后,再用 cordova 打包).在加载 file:/// 协议时因为 webview安全机制有一些报错.SK各种找解决 ... 
- Android8.0新特性总结
			1.通知渠道:开发者可以自定义应用的通知内容类别,为用户提供一个可以对通知精细控制的接口,用户可以对通知 进行精细的掌控 开发指南 创建通知渠道的步骤: 创建 NotificationChann ... 
