猿问

关于函数的C语言编程问题,大神求救!


输入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。


        运行要求:

        检验至少三个人的身份证号


做一个好码农
浏览 2447回答 1
1回答

黄小凡

表示这个题目很有意思,而且也不难啊。都把提示全部告诉你了。提供一下大致思路,先从键盘获取用户输入的身份证号,然后把这个字符串转化为int数组,然后用for循环,依次对应相乘,用一个变量sum求和,最后用sum除11取余数,再对应最后一个数组,找出下标,和身份证最后一位进行对比。最难的一个地方应该就是在于把字符串转化为int数组了,百度一下,这个作为一个函数使用就行了。好想知道,难道我们的身份证后四位就是这样算出来的。。。
随时随地看视频慕课网APP
我要回答