题目描述
输入某人的18位身份证号,输出其出生日期。
输入
多实例测试。首先输入一个整数n,表示测试实例的个数,然后是n行,每行是一个18位身份证号。
输出
对于输入的每个身份证号,输出一行,即其对应的出生日期,输出格式为:yyyy-mm-dd。
样例输入 Copy

3
410106199411178657
410104198202095479
410122197911218097

样例输出 Copy

1994-11-17
1982-02-09
1979-11-21

提示
scanf()函数中,可用%md指定读取位数。

法一(提示方法):

#include<stdio.h>
int main()
{int i,n;int a,b,c;scanf("%d\n",&n);for(i=0;i<n;i++){scanf("%*6d%4d%2d%2d%*4d",&a,&b,&c);//表示读入数据时跳过六列、读入四位数、读入两位数、读入两位数、跳过四位数printf("%4d-%02d-%02d\n",a,b,c);//分别以四位数、两位数、两位数的形式输出a、b、c("%02d"表示不足两位用0补齐)}
}

法二(定义字符数组(逐个赋值),所以用以下两种方式解决换行符覆盖数组值的问题):


        **1**将数组长度定义为19,多一位存放换行符,防止将换行符传给下一个数组
#include<stdio.h>
int main()
{char a[19]; int i,j,n;scanf("%d",&n);for(i=0;i<n;i++){for(j=0;j<19;j++){scanf("%c",&a[j]);}printf("%c%c%c%c-%c%c-%c%c\n",a[6],a[7],a[8],a[9],a[10],a[11],a[12],a[13]);}//换行return 0;
}
        **2**  用getchar()将回车吸收
#include<stdio.h>
int main()
{char a[18]; int i,j,n;scanf("%d\n",&n);for(i=0;i<n;i++){for(j=0;j<18;j++){scanf("%c",&a[j]);}getchar();//读入回车printf("%c%c%c%c-%c%c-%c%c\n",a[6],a[7],a[8],a[9],a[10],a[11],a[12],a[13]);}//换行(此处也可以不换行,仍用getchar()接收回车)return 0;
}

法三(较简:字符串的输入):

#include<stdio.h>
int main()
{char a[18]; int i,j,n;scanf("%d",&n);for(i=0;i<n;i++){scanf("%s",&a);printf("%c%c%c%c-%c%c-%c%c\n",a[6],a[7],a[8],a[9],a[10],a[11],a[12],a[13]);} return 0;
} 

PS: 如果有帮到你,希望留个赞,谢谢!

OJ1087: 获取出生日期(多实例测试)(C语言)相关推荐

  1. 1087: 获取出生日期(多实例测试) C语言

    1087: 获取出生日期(多实例测试) 时间限制: 1 Sec 内存限制: 128 MB 提交: 22270 解决: 14343 [状态] [讨论版] [提交] [命题人:admin] 题目描述 输入 ...

  2. OJ1083: 数值统计(多实例测试)(C语言)

    1083: 数值统计(多实例测试) 题目描述 统计给定的n个数中,负数.零和正数的个数 输入 输入数据有多组,每组占一行,每行的第一个数是整数n(n<100),表示需要统计的数值的个数,然后是n ...

  3. ZZULIOJ 1087: 获取出生日期(多实例测试)

    获取出生日期(多实例测试) 题目描述 输入某人的18位身份证号,输出其出生日期. 输入 多实例测试.首先输入一个整数n,表示测试实例的个数,然后是n行,每行是一个18位身份证号. 输出 对于输入的每个 ...

  4. 1087: 获取出生日期(多实例测试) Python

    1087: 获取出生日期(多实例测试) 时间限制: 1 Sec 内存限制: 128 MB 提交: 22270 解决: 14343 [状态] [讨论版] [提交] [命题人:admin] 题目描述 输入 ...

  5. 1088: 获取出生日期(多实例测试)

    时间限制: 1 Sec  内存限制: 128 MB 题目描述 输入某人的18位身份证号,输出其出生日期. 输入 多实例测试.首先输入一个整数n,表示测试实例的个数,然后是n行,每行是一个18位身份证号 ...

  6. 1087: 获取出生日期(多实例测试)

    题目描述 输入某人的18位身份证号,输出其出生日期. 输入 多实例测试.首先输入一个整数n,表示测试实例的个数,然后是n行,每行是一个18位身份证号. 输出 对于输入的每个身份证号,输出一行,即其对应 ...

  7. 2021-03-08 C语言strcasecmp函数和strncasecmp函数介绍和实例测试

    C语言strcasecmp函数和strncasecmp函数介绍和实例测试 一. strcasecmp()用来比较参数s1和s2字符串,比较时会自动忽略大小写的差异.若参数s1和s2字符串相同则返回0. ...

  8. OJ1084: 计算两点间的距离(多实例测试)(C语言)

    OJ1084: 计算两点间的距离(多实例测试) 题目描述 入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离. 输入 输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2 ...

  9. OJ1081: n个数求和 (多实例测试)(C语言数组实现)

    题目描述 求n个整数的和. 输入 输入第一行是一个整数T,表示有T组测试实例: 每组输入包括两行: 第一行一个数n表示接下来会有n个整数: 第二行空格隔开的n个数. 输出 对于每组输入,在一行输出n个 ...

最新文章

  1. js去除数组中重复值
  2. qt qtreewidget 设置 值_QTreeWidget
  3. Unity学习笔记 - Assets, Objects and Serialization
  4. Dom Tree Node, Render Tree Node 结构
  5. Linux常用运维命令笔记
  6. centos 安装mysql_Centos 下mysql数据库完整安装过程
  7. 什么是区块链――区块链的分布式数据库、共识机制
  8. WINDOWS10更改主题
  9. 单内核,微内核,混合内核OS结构比较
  10. 在visual stdio中使用Git
  11. zabbix邮箱告警配置
  12. java 汽车加油问题_贪心算法---汽车加油问题
  13. 基于开路电压+安时积分法估算锂电池SOC(二)
  14. 健康小贴士:喝酒时别点哪些菜_新闻中心_新浪网
  15. “换头术”所引发的“长生不死”
  16. [编程入门]猴子吃桃的问题(JAVA解法)
  17. excel怎么拆分成多个独立表格文件
  18. LM334芯片到底是恒流源还是温度传感器?
  19. 求二叉树根节点到叶节点的所有路径
  20. php 循环电泳函数,【分享】单细胞凝胶电泳(彗星实验)分析软件CASP及教程【已搜索无重复】...

热门文章

  1. Java文件File操作一:文件的创建和删除
  2. BZOJ 1031: [JSOI2007]字符加密Cipher( 后缀数组 )
  3. JQuery data API实现代码分析
  4. jQuery图表开源软件
  5. C#4.0 命名参数可选参数
  6. Android广播(笔记)
  7. python提取字符串中数字_EXCEL数字在字符串中间怎么提取?
  8. 每周四JEECG社区公开课:微信公众账号运营(jeewx使用)入门讲解
  9. Eclipse设置:背景与字体大小和xml文件中字体大小调整
  10. Java 集合类说明及区别