输入18位身份证编号字符串,用下面的方法编程检验输入的身份证号是否正确。
即:将前17位数字依次与数组int aW[17]
={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2}对应元素相乘,求和,再以11为模求余数,再以余数为校验数组int aXY[11]={1,0,10,9,8,7,6,5,4,3,2}的下标找出校验值,与最后一位相比较,如果不等表示输入的身份证号码有问题,此时提醒重新输入。 注:身份证号码最后一位等于X的,表示值为10。 运行要求: 检验至少三个人的身份证号
1 回答
黄小凡
TA贡献69条经验 获得超36个赞
表示这个题目很有意思,而且也不难啊。都把提示全部告诉你了。提供一下大致思路,先从键盘获取用户输入的身份证号,然后把这个字符串转化为int数组,然后用for循环,依次对应相乘,用一个变量sum求和,最后用sum除11取余数,再对应最后一个数组,找出下标,和身份证最后一位进行对比。最难的一个地方应该就是在于把字符串转化为int数组了,百度一下,这个作为一个函数使用就行了。好想知道,难道我们的身份证后四位就是这样算出来的。。。
- 1 回答
- 1 关注
- 2452 浏览
添加回答
举报
0/150
提交
取消