题目
身份证都是有着特殊的含义的,其中:
1、将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2
2、将这17位数字和系数相乘的结果相加。
3、用加出来和除以11,看余数是多少
4、上面得到的余数只可能有0-1-2-3-4-5-6-7-8-9-10这11个数字。其分别对应的最后一位身份证的号码为1-0-X-9-8-7-6-5-4-3-2。
5、通过上面得知如果余数是3,就会在身份证的第18位数字上出现的是9。如果对应的数字是2,身份证的最后一位号码就是X。
6、身份证从第七位到第十四位分别为年、月、日,要求均合法,年份从1900到2022。(非闰年的2月有28天;闰年的2月有29天;非整百年,能被4整除的为闰年,整百
年,能被400整除的是闰年。)
要求阅读以上信息,编写一个验证身份证是否有效的程序,检验要求包括:
a.检验身份证最后一位的号码是否正确;
b.检验身份证的年月日是否合法。
输入格式
身份证号字符串c1C2c3c4…Cn,(0<=cn<=9orcn=x)
输出格式
输出一行,正确身份证输出"True ID",错误身份证输出"False ID"
输入样例1
53010219200508011x
输出样例1
True ID
输入样例2
420222200402281438
输出样例2
False ID
请问C语言中将字符串转换成数组用什么方法,觉得一个个减‘0’太慢了
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
3条回答 默认 最新
justyouonlylove 2023-12-22 09:16关注char *str = "Hello"; for(int i = 0; str[i] != '\0'; i++) { printf("%c ", str[i]); }本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报