| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 940 人关注过本帖
标题:身份证的奥秘,出现无效引用内存,求助
只看楼主 加入收藏
bluesword
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2017-5-31
收藏
 问题点数:0 回复次数:1 
身份证的奥秘,出现无效引用内存,求助
大神求助 这个某个测试显示无效引用内存 题目是身份证的奥秘
程序代码:
#include<stdio.h>
#include<string.h>
int main()
{
char a[20];
int b[18]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
int n,i,j,sum,m;
scanf("%d",&n);
for(j=0;j<n;j++)
{
    scanf("%s",a);
    if(strlen(a)==18)
    {
        if(a[17]=='X')
        a[17]=10;
        else
        a[17]=a[17]-'0';
        for(i=0;i<17;i++)
        a[i]=a[i]-'0';
        for(i=0,sum=0;i<17;i++)
        {
            sum+=(a[i]*b[i]);
        }
        m=sum%11;
        if(m==1)
        m=0;
        else if(m==0)
        m=1;
        else
        m=(6-m)*2+m;
        if(m==a[17])
        printf("Valid\n");
        else
        printf("Invalid\n");
    }
    else if(strlen(a)==15)
    {
        for(i=0;i<15;i++)
        a[i]=a[i]-'0';
        for(i=14;i>5;i--)
        {
            a[i+2]=a[i];
        }
        a[18]='\0';
        a[6]=1;
        if(a[14]==9&&a[15]==9&&a[16]>5)
            a[7]=8;
        else
            a[7]=9;
        for(i=0;i<17;i++)
        printf("%d",a[i]);
        for(i=0,sum=0;i<17;i++)
        {
            sum+=(a[i]*b[i]);
        }
        m=sum%11;
        if(m==1)
        m=0;
        else if(m==0)
        m=1;
        else
        m=(6-m)*2+m;
        if(m==10)
        printf("X\n");
        else
        printf("%d\n",m);
    }
    else
    printf("Invalid\n");
}
}
搜索更多相关主题的帖子: 身份证 
2017-05-31 16:53
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
你这代码是干啥的啊

DO IT YOURSELF !
2017-06-02 12:01
快速回复:身份证的奥秘,出现无效引用内存,求助
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018057 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved