| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1493 人关注过本帖
标题:出生日期问题
只看楼主 加入收藏
刘沛东
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2014-11-27
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:4 
出生日期问题

输入某人的18位身份证号,输出其出生日期。

输入


多实例测试。首先输入一个整数n,表示测试实例的个数,然后是n行,每行是一个18位身份证号。

输出


对于输入的每个身份证号,输出一行,即其对应的出生日期,输出格式为:yyyy-mm-dd。
搜索更多相关主题的帖子: 出生日期 身份证号 
2014-11-27 21:59
刘沛东
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2014-11-27
收藏
得分:0 
请各位大神帮帮忙吧
2014-11-27 21:59
yahwei
Rank: 7Rank: 7Rank: 7
来 自:湖~
等 级:黑侠
威 望:3
帖 子:145
专家分:644
注 册:2011-11-10
收藏
得分:4 
以下是引用刘沛东在2014-11-27 21:59:22的发言:


输入某人的18位身份证号,输出其出生日期。

输入


多实例测试。首先输入一个整数n,表示测试实例的个数,然后是n行,每行是一个18位身份证号。

输出


对于输入的每个身份证号,输出一行,即其对应的出生日期,输出格式为:yyyy-mm-dd。

为了分数:
程序代码:
#include <stdio.h>

void
prt ( int n ) 
{
    char str[19];
    int i, len = 0;
    for ( i = 0; i < n; i++ ) {
        printf ( "输入身份证号:" ) ;
        fflush ( stdin ) ;
        scanf ( "%18[0123456789xX]%n", str, &len );
        if (  len < 18 ) {
            printf ( "输入的身份证号长度不足18位\n请重新", str ) ;
            continue ;
        }
        printf ( "出生日期为:%c%c%c%c-%c%c-%c%c\n", str[6],str[7],str[8],str[9], str[10],str[11], str[12],str[13] ) ;
        len = 0 ;
    }
    return ;
}

int 
main ( void )
{
    int n;
    printf ( "输入数据最大行数:" ) ;
    scanf ( "%d", &n ) ;
    prt ( n ) ;
    return 0 ;
}


以下是引用forever74在2014-11-28 16:58:50的发言:

嗯,身份证号末尾可能是字母x

已经改正,谢谢指点!

[ 本帖最后由 yahwei 于 2014-11-29 23:00 编辑 ]

[qq]949654600[/qq]
2014-11-28 09:04
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1696
专家分:4295
注 册:2007-12-27
收藏
得分:4 
回复 3 楼 yahwei
嗯,身份证号末尾可能是字母x

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2014-11-28 16:58
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:4 
程序代码:
#include <stdio.h>
#include <stdlib.h>

void printBirth(char *);

int main(void) {
    int i=0, n;
    char *ID=malloc(19*sizeof(char));
    if(!*ID) {
        printf("again!\n");
        exit(0);
    }
L:
    printf("INPUT N: ");
    scanf("%d", &n);
    if(n<1) {
        printf("N ERROR!\n");
        goto L;
    } else {
        for(i=0; i<n; i++) {
            printf("INPUT ID NUMBER: ");
            scanf("%s", ID);
            if(strlen(ID)==18) {
                printBirth(ID);
            } else {
                printf("ID ERROR!\n");
                exit(0);
            }
        }
    }
    free(ID);
    return 0;
}

void printBirth(char *p) {
    int j;
    for(j=6 ; j<10; j++) {
        printf("%c",*(p+j));
    }
    printf("-");
    for(; j<12; j++) {
        printf("%c",*(p+j));
    }
    printf("-");
    for(; j<14; j++) {
        printf("%c",*(p+j));
    }
    printf("\n");
    for(j=18 ; j>=0; j--) {
        *(p+j)='\0';
    }
}

Only the Code Tells the Truth             K.I.S.S
2014-11-28 22:16
快速回复:出生日期问题
数据加载中...
 
   



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

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