C语言: 身份证问题

编程入门 行业动态 更新时间:2024-10-12 01:23:51

C语言: <a href=https://www.elefans.com/category/jswz/34/1767354.html style=身份证问题"/>

C语言: 身份证问题

题目描述

 如果让你设计个程序,用什么变量保存身份证号码呢?长整数可以吗?不可以!
  因为有人的身份证最后一位是"X"
  实际上,除了最后一位的X,不会出现其它字母!
  身份证号码18位 = 17位 + 校验码
  校验码的计算过程:
  例如:身份证前17位 = ABCDEFGHIJKLMNOPQ
  A~Q 每位数字乘以权值求和(每位数字和它对应的“权”相乘后累加)
  17位对应的权值分别是:
  7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
  求出的总和再对11求模
  然后按下表映射:
  余数    0   1   2   3   4  5   6   7   8   9   10 
  校验码: 1   0   X   9  8   7   6   5   4  3   2 
输入身份证前17位,打印出校验码。

输入

输出

样例输入

13072719840805463

样例输出

X

提示

#include<stdio.h>
int main()
{
char a[18];
int c[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
char b[11]={'1','0','X','9','8','7','6','5','4','3','2'};
int sum=0,i,j;
gets(a);
for(i=0;i<17;i++)
{
sum+=(a[i]-'0')*c[i];
}
j=sum%11;
printf("%c",b[j]);
return 0;
 }  

更多推荐

C语言: 身份证问题

本文发布于:2024-02-13 19:28:18,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1760452.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:身份证   语言

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!