查验身份证 (15分)

  • 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:
  • 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:
Z:0 1 2 3 4 5 6 7 8 9 10
M:1 0 X 9 8 7 6 5 4 3 2
  • 现在给定一些身份证号码,请你验证校验码的有效性,并输出有问题的号码。

输入格式:

输入第一行给出正整数N(≤100)是输入的身份证号码的个数。随后N行,每行给出1个18位身份证号码。

输出格式:

按照输入的顺序每行输出1个有问题的身份证号码。这里并不检验前17位是否合理,只检查前17位是否全为数字且最后1位校验码计算准确。如果所有号码都正常,则输出All passed。

输入样例1:

4
320124198808240056
12010X198901011234
110108196711301866
37070419881216001X

输出样例1:

12010X198901011234
110108196711301866
37070419881216001X

输入样例2:

2
320124198808240056
110108196711301862

输出样例2:

All passed

程序代码:

#include<stdio.h>
int main()
{   int n,j;scanf("%d",&n);char a[17];int sum=0,ans=0;int weight[]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};char M[]={'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'};for(int k=0;k<n;k++){scanf("%s",&a);sum=0;for(j=0;j<17&&a[j]>='0'&&a[j]<='9';j++){sum+=(a[j]-'0')*weight[j];}if(j==17&&M[sum%11]==a[17])ans++;else printf("%s\n",a);if(ans==n)printf("All passed");}return 0;
}

查验身份证(15分)相关推荐

  1. PTA第3章-2 查验身份证 (15 分)

    第3章-2 查验身份证 (15 分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4, ...

  2. C++学习之路 | PTA乙级—— 1031 查验身份证 (15 分)(精简)

    1031 查验身份证 (15 分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2 ...

  3. 7-54 查验身份证 (15 分)

    7-54 查验身份证 (15 分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2 ...

  4. PAT乙级 1031 查验身份证 (15 分)

    1031 查验身份证 (15 分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2 ...

  5. 【2020模拟考试T1】【PAT乙】1031 查验身份证 (15分)模拟

    problem 1031 查验身份证 (15分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10, ...

  6. L1-016 查验身份证 (15 分)[JAVA]

    L1-016 查验身份证 (15 分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4 ...

  7. 查验身份证 (15 分)一个合法的身份证号码

    查验身份证 (15 分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6, ...

  8. PAT 乙级 1031 查验身份证 (15分)

    1031 查验身份证 (15分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2, ...

  9. L1-016 查验身份证 (15 分)

    L1-016 查验身份证 (15 分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4 ...

最新文章

  1. IOS_多线程_ASI_AFN_UIWebView
  2. careercup-C和C++ 13.2
  3. TP5与TP3.X对比
  4. windows批量关机
  5. C语言嵌入式系统编程修炼之内存操作
  6. 2018 CCPC 桂林站小结
  7. 接口规范 8. 播出认证相关接口
  8. ERP 趣读 【转】
  9. ospf多区域实例配置
  10. 190819每日一句
  11. 机箱前面的耳机插孔没声音
  12. 存储区域网络(Storage Area Network,简称SAN)
  13. 如何为计算机设置ip地上,电脑ip地址设置为多少
  14. 40Gbit和100Gbit的网络可视性解决方案
  15. 小米电视android刷机,小米电视刷机经历
  16. 提高数据存储效率的七个技巧
  17. NLP-文本向量化:Word Embedding 一般步骤【字符串->分词->词汇序列化->词汇向量化】
  18. iOS逆向开发,突破微信强制升级,让低版本的iPhone也能正常使用
  19. 获取当前系统时间(三种方法)
  20. return int()函数 c++解说

热门文章

  1. 采用SRM软件反拍卖采购的好处多多
  2. 中高级职称评审,一建二建免考两科
  3. 开发板 时间 同步_近万字试用报告!RISCV开发板GD32VF103
  4. astator-C#安卓脚本-vscode开发环境搭建
  5. 百度C++工程师的那些极限优化(并发篇)
  6. KnowHowChain(脑海链)进度报告——9月15日-9月30日
  7. wxpython 如何在windows下同时显示unicode中日韩文
  8. 2022年初级经济师考试金融专业知识与实务练习题及答案
  9. vmware'如果已在 BIOS/固件设置中禁用 Intel VT-x,或主机自更改此设置后从未重新启动,则 Intel VT-x 可能被禁用'解决办法
  10. ctfshow SSTI 知识点总结