题目描述
继手机号之后,小程又发现了一串神奇又好玩的数字(当然它里边可能会含有字母的,常识)——身份证号。
通过研究,小程发现身份证号都是由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条件多写点就好