房产证(PTA L1-016)的身份证查验详解

  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。

  2. 输入样例2:

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

  3. 输出格式:

  输入样例1:

  输出样例2:

  2 320124198808240056

  4 320124198808240056

  12010X198901011234

  110108196711301866

  37070419881216001X

  All passed

  4. 输入样例1:

  4

  320124198808240056

  12010X198901011234

  110108196711301866

  37070419881216001X

  代码实现:

  #include

  int main() {

  int weight[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'};

  int n = 0;

  scanf("%d",&n);

  int i = 0;

  char id[19]={0};

房产证(PTA L1-016)的身份证查验详解

  int flag=0;

  for(i=0;i

  scanf("%s",id);

  int j=0;

  int sum=0;

  for(j=0;j<17;j++){

  if(id[j]>='0' && id[j]<='9'){

  sum+=(id[j]-'0')*weight[j];

  }

  else{

房产证(PTA L1-016)的身份证查验详解

  flag=1;

  printf("%s\n",id);

  break;

  }

  }

  if(flag==1){

  flag=0;

  continue;

  }

  int z=sum%11;

  if(id[17]!=m[z]){

  printf("%s\n",id);

  }

  }

  return 0;

  }

  总结:通过本次详细的身份证校验代码实现,我们了解了身份证号码校验码的计算规则,以及如何使用C语言对身份证号码进行校验。这对于保障身份证号码的合法性和准确性具有重要意义,也为我们编写更加健壮的程序提供了参考。希望大家在日常编程中能够灵活运用这些知识,编写出更加稳健的程序。

发布于 2024-02-02 10:33:16
分享
158
上一篇:江苏常州取消新房2年限售期,持有不动产权证即可交易 下一篇:大S购买“亲嘴楼”房产引发热议
目录

    忘记密码?

    图形验证码