| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 11722 人关注过本帖, 1 人收藏
标题:c语言入门题,身份证的奥秘
只看楼主 加入收藏
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:0 
回复 20楼 水色苔
连试都不试就说不行,真搞笑
2016-11-18 22:04
水色苔
Rank: 1
等 级:新手上路
帖 子:9
专家分:7
注 册:2016-11-17
收藏
得分:0 
回复 21楼 linlulu001
。。。。我试过了啊
2016-11-18 22:10
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:0 
回复 22楼 水色苔
你放屁,你的代码只要按我说的改就能过。还说你试过。睁眼说瞎话。
2016-11-18 23:18
水色苔
Rank: 1
等 级:新手上路
帖 子:9
专家分:7
注 册:2016-11-17
收藏
得分:0 
以下是引用linlulu001在2016-11-18 23:18:04的发言:

你放屁,你的代码只要按我说的改就能过。还说你试过。睁眼说瞎话。

图片附件: 游客没有浏览图片的权限,请 登录注册

2016-11-18 23:39
水色苔
Rank: 1
等 级:新手上路
帖 子:9
专家分:7
注 册:2016-11-17
收藏
得分:0 
回复 23楼 linlulu001
好吧 我换回了windows系统  然后过了
可能 unix平台问题吧
2016-11-18 23:53
另一颗小白菜
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2019-10-27
收藏
得分:0 
已经9102年了还是有小白想搭车同问,自己试明明和答案一样,请大神们帮我看看问题在哪里。。一个用例都过不了QAQ
程序代码:
#include<stdio.h>
#include<string.h>

char mode(char b[4][20],int k);
int main()
{
    char a[4][20]={0};
    int zushu,i,p,k,len[5]={0}; 
    scanf("%d",&zushu);
    for(i=0;i<zushu;i++)
    {
        scanf("%s",&a[i]); 
        len[i]=strlen(a[i]);
    }
    
    for(i=0,k=0;i<zushu;i++,k++)
    {
        if(len[i]==15)
        {
            for(p=14;p>=6;p--)//换位置 
            {
                a[i][p+2]=a[i][p];
            }
            if(a[i][14]=='9'&&a[i][15]=='9'&&( a[i][16]=='6' || a[i][16]=='7' || a[i][16]=='8' || a[i][16]=='9' ))
            {
                a[i][6]='1';
                a[i][7]='8';
            }
            else 
            {
                a[i][6]='1';
                a[i][7]='9';
            }
            a[i][17]=mode(a,k);
            printf("%s\n",a[i]);
        }
        else
        {
            if(len[i]==18&&a[i][17]==mode(a,k))printf("Valid\n");
            else printf("Invalid\n");
        }
    }
    return 0;    
}

//加权,取模
char mode(char b[4][20],int k)
{
    int t,q;
    t=0+20*k;
    q= (b[0][t++]-48)*7 + (b[0][t++]-48)*9 + (b[0][t++]-48)*10 + (b[0][t++]-48)*5 + (b[0][t++]-48)*8 + (b[0][t++]-48)*4 + (b[0][t++]-48)*2 + (b[0][t++]-48)*1 + (b[0][t++]-48)*6 + (b[0][t++]-48)*3 + (b[0][t++]-48)*7 + (b[0][t++]-48)*9 + (b[0][t++]-48)*10 + (b[0][t++]-48)*5 + (b[0][t++]-48)*8 + (b[0][t++]-48)*4 + (b[0][t++]-48)*2;
    switch(q%11)
    {
    case 0:t=49;break;
    case 1:t=48;break;
    case 2:t=88;break;
    case 3:t=57;break;
    case 4:t=56;break;
    case 5:t=55;break;
    case 6:t=54;break;
    case 7:t=53;break;
    case 8:t=52;break;
    case 9:t=51;break;
    case 10:t=50;break;
    }
    return t;

 } 
2019-10-27 20:45
另一颗小白菜
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2019-10-27
收藏
得分:0 
我换了个编译器,发现了问题出在算加权的和式那里,已经改过来了,但是还有一个用例三过不了。好像是有个循环跳不出来,我再自己查一查
2019-10-27 22:41
另一颗小白菜
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2019-10-27
收藏
得分:0 
过啦~居然设置了八组身份证。。。
2019-10-27 23:17
快速回复:c语言入门题,身份证的奥秘
数据加载中...
 
   



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

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