校验身份证号码并输出个人信息
描述
中国目前采用的是18位身份证号,其第7-10位数字是出生年,11-12位是出生月份,13-14是出生日期,第17位是性别,奇数为男性,偶数为女性,第18位是校验位。如果身份证号码的其中一位填错了(包括最后一个校验位),则校验算法可以检测出来。如果身份证号的相邻2位填反了,则校验算法可以检测出来。校验规则如下: 1. 将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。 2. 将这17位数字和系数相乘的结果相加。 3. 用加出来和除以11,看余数只可能是:0-1-2-3-4-5-6-7-8-9-10 分别对应的最后一位身份证的号码为:1-0-X-9-8-7-6-5-4-3-2 4. 通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的X(大写英文字母X)。如果余数是10,身份证的最后一位号码就是2。 编程要求: (1)用户输入一个身份证号,校验其是否是合法的身份证号码,如身份证号码不合法,输出 ‘身份证校验位错误!’,如身份证号码合法,则分别在4行中输出’身份证号码校验为合法号码!’,该人的出生年月日、年龄和性别。 (2)要求自定义一个身份证校验的函数IDcheck()参数为身份证,校验合法返回1,否则返回0;再定义主函数以实现上述功能 说明:年龄计算以当前的年份减去出生年份即可(不需要考虑出生月日)
输入格式 一个18位身份证号,末位为数字或大写字母X
输出格式 参考下面示例
输入输出示例 输入 输出 示例 1 432831196411150810
身份证号码校验为合法号码! 出生:1964年11月15日 年龄:54 性别:男
432831196811150810
身份证校验位错误!