c语言函数判断身份证合法 c语言判断身份证是否合法

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

#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; i18; i++)

num[i]=st[i]-'0';

for( i=0; i18; i++)

printf("%2d ",num[i]);

printf("\n");

if(num[16]%2==0)

printf("女的\n");

else printf("男的\n");

for( i=0; i17; 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; i17; 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;

}

C语言中,如何生成身份证年份的随机数(用rank()函数),并校验身份证是否合法

最后4位数字中的前两位表示当地派出所的编码;

倒数第二位表示公民是男性还是女性(男性用单数,女性用双数);

最后一位数字是一个随机数,又称为校验码。 用来检验身份证的正确性。校检码可以是0~9的数字,有时也用x表示。

同C语言 验证 身份证号码 合法性 。

#include "stdio.h"

void main()

{

int i; /*身份证的第i位*/

int s[17]; /*定义一个数组用来存放身份证的前17位*/

int t[17]; /*各位相乘后的数组*/

int m; /*余数*/

int t18; /*身份证的第18位0--9*/

char t18c; /*身份证的第18位X*/

long int sum=0;

for(i=0;i17;i++)

{

printf("请输入身份证的第%d位:",i+1);

scanf("%d",s[i]);

switch(i+1)

{

/*身份证的1到17位要乘的数一次是7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 */

case 1:t[i]=s[i]*7;break;

case 2:t[i]=s[i]*9;break;

case 3:t[i]=s[i]*10;break;

case 4:t[i]=s[i]*5;break;

case 5:t[i]=s[i]*8;break;

case 6:t[i]=s[i]*4;break;

case 7:t[i]=s[i]*2;break;

case 8:t[i]=s[i]*1;break;

case 9:t[i]=s[i]*6;break;

case 10:t[i]=s[i]*3;break;

case 11:t[i]=s[i]*7;break;

case 12:t[i]=s[i]*9;break;

case 13:t[i]=s[i]*10;break;

case 14:t[i]=s[i]*5;break;

case 15:t[i]=s[i]*8;break;

case 16:t[i]=s[i]*4;break;

case 17:t[i]=s[i]*2;break;

}

sum=sum+t[i];

}

printf("前17位相乘后的和为%ld\n",sum);

m=sum%17;

printf("对17取余后的值位:",m);

switch(m)

{

/*各个余数所对应第18位身份证号1 0 X 9 8 7 6 5 4 3 2*/

case 0:t18=1 ;printf("这是一个合法的身份证号码,第18位是%d",t18);break;

case 1:t18=0 ;printf("这是一个合法的身份证号码,第18位是%d",t18);break;

case 2:t18c='X';printf("这是一个合法的身份证号码,第18位是%c",t18c);break;

case 3:t18=9 ;printf("这是一个合法的身份证号码,第18位是%d",t18);break;

case 4:t18=8 ;printf("这是一个合法的身份证号码,第18位是%d",t18);break;

case 5:t18=7 ;printf("这是一个合法的身份证号码,第18位是%d",t18);break;

case 6:t18=6 ;printf("这是一个合法的身份证号码,第18位是%d",t18);break;

case 7:t18=5 ;printf("这是一个合法的身份证号码,第18位是%d",t18);break;

case 8:t18=4 ;printf("这是一个合法的身份证号码,第18位是%d",t18);break;

case 9:t18=3 ;printf("这是一个合法的身份证号码,第18位是%d",t18);break;

case 10:t18=2 ;printf("这是一个合法的身份证号码,第18位是%d",t18);break;

default:printf("这不是一个合法的身份证号码");

}

printf("\n");

}


分享题目:c语言函数判断身份证合法 c语言判断身份证是否合法
URL分享:http://myzitong.com/article/doochhj.html