一直过不了的代码,部分正确,不知道为什么
7-22 查验身份证 (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 argc,char const argv[])
{
int n;
int i,j;
int num,sum,z,cnt=0;
int Q[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
char M[11]={‘1’,‘0’,‘X’,‘9’,‘8’,‘7’,‘6’,‘5’,‘4’,‘3’,‘2’};
scanf("%d",&n);
int b[n]={0,};
char a[n][18];
for(i=0;i<n;i++)
{
scanf("%s",&a[i]);
}
for(i=0;i<n;i++)
{
b[i]=0;
z=0;
sum=0;
for(j=0;j<17;j++)
{
if(a[i][j]==‘X’)
{
sum+=10
Q[j];
}else
{
num=a[i][j]-‘0’;
sum+=num*Q[j];
}
num=0;
}
z=sum%11;
if(a[i][17]==M[z])
{
b[i]=1;
}
}
for(i=0;i<n;i++)
{
// printf("%d “,b[i]);
if(b[i]1)
cnt++;
}
if(cntn)
{
printf(“All passed”);
}else
{
for(i=0;i<n;i++)
{
if(b[i]==0)
{
printf(”%s",a[i]);
}
}
}
}
一直过不了不知道错哪了

pta查验身份证。个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。相关推荐

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

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

  2. C语言——实验一:查验身份证(身份证号码的校验码)

    前言 为什么我这个萌新要来写这篇文章?事情还要从上周三说起. 在上周三的程序设计基础课上,我们老师给我们全班同学布置了一项题为<实验一:查验身份证>的实验作业,这也是我第一次接触到实验作业 ...

  3. 居民身份证号码的奥秘及身份证第18位(校验码)的计算方法

    2019独角兽企业重金招聘Python工程师标准>>> 居民身份证是国家法定的证明公民个人身份的证件.为了堵塞和制止假居民身份证的流通和使用,在查验和核查居民身份证时可掌握以下几个要 ...

  4. 对身份证号码的处理,所在地,生日,派出所代码,男or女,校验码

    一.身份证编码 (1)前六位表示编码对象常住户口所在县(市.镇.区)的行政区划代码.1-2位省.自治区.直辖市代码: 3-4位地级市.盟.自治州代码: 5-6位县.县级市.区代码. (2)第七位到第十 ...

  5. 身份证第18位(校验码)的计算方法

    1.将前面的身份证号码17位数分别乘以不同的系数.从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2. 2.将这17位数字和系数相乘的结果相加. 3 ...

  6. Python计算身份证第18位(校验码)来判断身份证是否输入正确

    Python计算身份证第18位(校验码)来判断身份证是否输入正确 前言 身份证编码规则如下:根据[中华人民共和国国家标准GB11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由 ...

  7. JAVA代码实现身份证18位校验码合法性校验

    身份证第18位(校验码)的计算方法 1.将前面的身份证号码17位数分别乘以不同的系数.从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2. 2.将这 ...

  8. Java身份证号码严格验证(第18位校验码算法实现)

    /*** 身份证号码的格式:610821-20061222-612-X 由18位数字组成:前6位为地址码,第7至14位为出生日期码,第15至17位为顺序码,* 第18位为校验码.检验码分别是0-10共 ...

  9. 根据身份证号和社会保险号码查询不出您的医保信息 请核实后重新填写

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 今天打算 ...

  10. Java:15位或18位居民身份证号码通用校验(正则表达式、日期格式、末尾校验码)

    身份证号码校验,正则表达式校验.日期格式校验.18位身份证末尾校验码校验 前六位省市县号码变更频繁,这里就不做校验 import java.text.ParseException; import ja ...

最新文章

  1. 机器学习数据预处理之缺失值:最小值最大值填充
  2. Microsoft Translator:打破语言障碍 拓展全球沟通新机遇
  3. 4.弹性网络( Elastic Net)
  4. mysql多表查询语句_mysql查询语句 和 多表关联查询 以及 子查询
  5. 使用一个环境的或者半径异样消除器来进行异样消除
  6. mysql基本功能+show+innodb+索引+慢sql+explain
  7. Asynchronous(异步处理-Promise)
  8. jstl处理栏目与子栏目_深圳北易:网站SEO优化如何提高网站栏目页排名
  9. java axis2 jar_Java axis2.jar包详解及缺少jar包错误分析
  10. AJAX 跨域访问 — 方法大全
  11. 马士兵oracle视频教程笔记
  12. 海康威视、python环境下onvif安装,多通道摄像头获取rtsp视频流
  13. TH75 V2 双模蓝牙5.2热插拔PCB
  14. WORD 2007删除尾注横线
  15. 计算机提示应用程序无法启动,电脑应用程序无法正常启动提示0x000007b怎么办?...
  16. linux ffmpeg 合并视频文件,使用ffmpeg合并视频
  17. 黑马python培训_要一张纯黑的图片。纯黑的。
  18. 盗版免费升级到Win10仍是盗版 官方不保证稳定性
  19. 程序常用英文单词 commonly used English word in program
  20. 【转来自我同事的一篇分享】 UOS安装部分无法打印的惠普打印机驱动

热门文章

  1. ee er_英语单词说文解字—第32节 后缀er和ee的构词
  2. 二元logistic回归前的单因素分析
  3. CCS软件仿真 手把手教你 CCS 软件仿真 TMS320F2812
  4. 网络工程制图论文计算机,计算机工程制图教学的课业评价-计算机工程论文-计算机论文.docx...
  5. 2018计算机应用基础教材,2018年计算机应用基础课件全套PPT电子档.ppt
  6. 学术会议/期刊论文撤稿信的模板
  7. app 要求字体使用楷体,使用字体包
  8. 《跨越鸿沟》中的提到的五类用户
  9. 《深入浅出WPF》——事件学习
  10. Hyperledger Fabric 开发环境安装