文章
266
粉丝
20
获赞
533
访问
136.5k
#include <iostream>
#include<cstring>
using namespace std;
int main()
{
char id[19]; // 存储身份证号,19是为了容纳18位字符+结束符'\0'
// 前17位的加权因子(国家标准GB 11643-1999规定)
// 每一位数字需要乘以对应的权重,然后求和
int weight[17] = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};
// 校验码对照表(余数0-10分别对应的校验字符)
// 余数0 → '1', 余数1 → '0', 余数2 → 'X', 余数3 → '9', ... 余数10 → '2'
char check[11] = {'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'};
// 循环读取每一行输入,直到文件结束
while (scanf("%s", id) != EOF) {
// 检查长度
if (strlen(id) != 18) {
printf("ID Wrong (length error)\n");
continue;
}
...
登录后发布评论
暂无评论,来抢沙发