2154 识别身份证号码

题目描述
继手机号之后,小程又发现了一串神奇又好玩的数字(当然它里边可能会含有字母的,常识)——身份证号。
通过研究,小程发现身份证号都是由18位数字组成的(也有最后一位是X的情况),并且每一位都有特定的含义,他觉得非常好玩,于是好奇的小程同学又开始疯狂试探了。
开学已经好几个月了,因为特殊原因,思乡心切的小程却无法回到家乡的怀抱,但是脑回路不一样的他有一个“解决办法”。他搜罗了一些身份证号,想找到其中是河南(41)周口(27)沈丘县(28)的老乡,但是他有点懒,聪明的你能帮助他么?(当然现在已经更新为411624,所以他也要找)
输入
第一行,输入n,表示有n个身份证号码(1<=n<=20)
接下来n行,每行输入一个s,表示身份证号码(保证18位)
输入一定包含老乡的身份证号码
输出
若不存在老乡的身份证号码,则输出“404”
若存在老乡的身份证号码,多个身份证号码则各占一行(每行行首输出第i张: )–冒号后有空格
1、若是老身份证号(412728),则输出“Old”(不包含“”)及身份证号码,中间用空格隔开
2、若是新身份证号(411624),则输出“New”(不包含“”)及身份证号码,中间用空格隔开
样例输入
5
130928198905281793
44092319850718266X
412728199003078312
150102199003075852
411624199003072379
样例输出
第3张: Old 412728199003078312
第5张: New 411624199003072379

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int n,i,j,flag;
    char a[20];
    scanf("%d",&n);
    flag=0;
    for(i=1;i<=n;i++)
    {
        scanf("%s",a);
        if(a[0]=='4'&&a[1]=='1'&&a[2]=='2'&&a[3]=='7'&&a[4]=='2'&&a[5]=='8')
        {
            flag=1;
            printf("第%d张: Old %s\n",i,a);
        }
        else if(a[0]=='4'&&a[1]=='1'&&a[2]=='1'&&a[3]=='6'&&a[4]=='2'&&a[5]=='4')
        {
            flag=1;
            printf("第%d张: New %s\n",i,a);
        }
    }
    if(!flag)
        printf("404");
    return 0;
}

这个很好判断 输入个字符串 然后if条件多写点就好

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值