C语言.设计身份证号合法性验证程序

设计身份证号合法性验证程序
1、接受键盘输入的身份证号
2、验证身份证是否合法有效
3、显示身份证相关信息:所在行政区域,出生年月日,性别

第1个回答  2015-05-28
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
char st[18];
int num[18],w[18],s=0;
int i ;
scanf("%18s",st);
for(i=0; i<18; i++)
num[i]=st[i]-'0';
for( i=0; i<18; i++)
printf("%2d ",num[i]);
printf("\n");
if(num[16]%2==0)
printf("女的\n");
else printf("男的\n");
for( i=0; i<17; i++)
{
w[i]=(int)pow(2,18-i-1)%11;
printf("%2d ",w[i]);
s+=num[i]*w[i];
}
printf("\ns=%d\n",s);
for( i=0; i<17; i++)
{
printf("%2d ",num[i]*w[i]);
}
s%=11;
printf(" = %d\n",s);
if(s==0 && num[17]==1)
{
printf("\nok\n");
return 0;
}
if(s==1 && num[17]==0)
{
printf("\nok\n");
return 0;
}
if(s==2 && (st[17]=='X' || st[17]=='x'))
{
printf("\nok\n");
return 0;
}
if((s>=3 && s<=10) && (s+num[17]==12))
{
printf("\nok\n");
return 0;
}
printf("\nerrer\n");
return 0;
}本回答被网友采纳
相似回答