C语言计算身份证号码最后一位

2020-10-12 社会 98阅读

输入的是字符,需要转为数字相乘,另外for中有i++,循环体中就不需要了

//#include "stdafx.h"
#include "stdio.h"
#include "string.h"
int main(int argc, char* argv[])
{
char id[18];
char mw[12] = { "10X98765432" }, c;
int xs[18] = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 };
int i, sum = 0, ys, k, cj;
for (k = 0; k <= 16; k++)
{
scanf("%c", &id[k]);
}
for (i = 0; i <= 16; i++)
{
cj = (id[i]-'0') * xs[i];/////////
sum = sum + cj;
//i++;////////
}
ys = sum % 11;
c = mw[ys];
printf("%c", c);
return 0;
}
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com