Ask Question

Name:
Title:
Your Question:

Answer Question

Name:
Your Answer:
User Submitted Source Code!


Description:
  C:\Users\Administrator\Desktop
Language: C/C++
Code:
#include <stdio.h>
#include <string.h>
 
int main(void)
{
    char InNum[18];
    char CheckNum[11] = {'1', '0', 'X' , '9', '8', '7', '6', '5', '4', '3', '2'};
    int i = 0;
    int Sum = 0;
    
    memset(InNum, 0, 18);
    printf("n请输入身份证前17位数字,按回车键结束:nt");
    fflush(stdin);    
    scanf("%s",InNum);
    
    printf("n输入的前17位数字为: nt");
    for(i = 0;i < 17;i++)
    {
     // 将ASCII码值 转化为数字
     InNum[i] -= 0x30;
     printf("%d",InNum[i]);
    }
    
    Sum = InNum[0]*7 + InNum[1]*9 + InNum[2]*10 + InNum[3]*5 + InNum[4]*8 +InNum[5]*4 + InNum[6]*2 + InNum[7]*1 + InNum[8]*6
       + InNum[9]*3 + InNum[10]*7 + InNum[11]*9 + InNum[12]*10 + InNum[13]*5 + InNum[14]*8 + InNum[15]*4 + InNum[16]*2;
 
    printf("n生成的身份证号码为: nt");
    for(i = 0;i < 17;i++)
     printf("%d",InNum[i]);
    printf("%c", CheckNum[Sum % 11]);
    printf("nOKn");
    return 0;
}

          
Comments: