PATB1031查验身份证
这一题遇见的错误有很多,学会了一些知识点
- 使用了strcpy函数,前是需要复制的数组,后面是被复制的数组
- 关于字符,如果是非数字可以使用 <='9' && >='0'来判断
参考代码:
#include<cstdio>
#include<cstring>
#include<cstdlib>
int P[18] = { 7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2 };// 权重
char M[12] = { '1','0','X','9','8','7','6','5','4','3','2' };//验证码对应数
int main()
{
int n;
int k = 0;//看错误的身份证存到哪一个了
scanf("%d", &n);
bool flag = true;
char str[20];
char Str[101][20];
for (int i = 0; i < n; i++)
{
scanf("%s", str);
int j, last = 0;//last用来记录前17位的加权和
for (j = 0; j < 17; j++)
{
if (!(str[j] >= '0' && str[j] <= '9')) break;//非数字
last = last + (str[j] - '0')*P[j];
}
if (j < 17)
{
flag = false;
strcpy(Str[k],str);
k++;
}
else
{
if (M[last % 11] != str[17])
{
flag = false;
strcpy(Str[k],str);
k++;
}
}
}
if (flag == true)
{
printf("All passed\n");
}
else
{
for(int i = 0; i < k; i++)
{
printf("%s\n", Str[i]);
}
}
return 0;
}
PATB1031查验身份证的更多相关文章
- PAT乙级 1031. 查验身份证(15) 标志要清零!!!!!!!!!
1031. 查验身份证(15) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 一个合法的身份证号码由17位地区. ...
- PAT-乙级-1031. 查验身份证(15)
1031. 查验身份证(15) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 一个合法的身份证号码由17位地区. ...
- 团体程序设计天梯赛-练习集L1-016. 查验身份证
L1-016. 查验身份证 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 一个合法的身份证号码由17位地区.日期编号和顺序编号 ...
- PAT 乙级 1031 查验身份证(15) C++版
1031. 查验身份证(15) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 一个合法的身份证号码由17位地区. ...
- PAT 1031 查验身份证(15)(C++&Python)
1031 查验身份证(15)(15 分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8, ...
- 【算法笔记】B1031 查验身份证
1031 查验身份证 (15 分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2 ...
- PAT——乙级1006:换个格式输出整数&乙级1021:个位数统计&乙级1031:查验身份证
1006 换个格式输出整数 (15 point(s)) 让我们用字母 B 来表示“百”.字母 S 表示“十”,用 12...n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 ...
- PAT (Basic Level) Practise (中文)-1031. 查验身份证(15)
PAT (Basic Level) Practise (中文)-1031. 查验身份证(15) http://www.patest.cn/contests/pat-b-practise/1031 一个 ...
- PAT(B) 1031 查验身份证(Java)
题目链接:1031 查验身份证 (15 point(s)) 题目描述 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配 ...
随机推荐
- 企业微信同步LDAP
1.需求 定期同步企业微信的用户信息到 LDAP 中,当有新用户时,会自动发送LDAP的账号密码给该用户邮箱. 2.环境 python 3.x 需要安装两个模块 pip install ldap3 r ...
- 2017 ACM/ICPC Asia Regional Shenyang Online E number number number 题解
分析: 当n=1时ans=4=f(5)-1; n=2,ans=12=f(7)-1; n=3,ans=33=f(9)-1; 于是大胆猜想ans=f(2*k+3)-1. 之后用矩阵快速幂求解f(n)即可, ...
- Mysql load data infile 命令格式
[1]Linux系统环境下 LOAD DATA INFILE /usr/LOCAL/lib/ubcsrvd/datacsv/201909_source.csv INTO TABLE np_cdr_20 ...
- 如何在 ubuntu 下使用 Windows 里面的字体
01. 02. 03. 04. 谢谢浏览!
- dotnet + LinQ 按照指定的字段 和 排序方式排序
/// <summary> /// 根据指定属性名称对序列进行排序 /// </summary> /// <typeparam name="TSource&qu ...
- html 图片滚动代码
我自己也在用的,网页常用!分享出来 最简单易懂源码 <!--下面是向上滚动代码--> <div id=butong_net_top style=overflow:hidden;hei ...
- excel批量添加超链接
使用 Hyperlink(Link-location,Friendly-name)
- vb Replace 实现
今天改一个VB程序时发现程序自带的replace 函数不知什么原因竟然不好用了 所以就自己写了一个玩玩 记录一下 'XGZ '替换字符 Private Function Replace1(ByVal ...
- EurekaClient自动装配及启动流程解析
在上篇文章中,我们简单介绍了EurekaServer自动装配及启动流程解析,本篇文章则继续研究EurekaClient的相关代码 老规矩,先看spring.factories文件,其中引入了一个配置类 ...
- Objective-C的self.用法
转自:http://mobile.51cto.com/iphone-313096.htm 进入正题, 我们经常会在官方文档里看到这样的代码: MyClass.h @interface MyClass ...