C语言格式化输入输出(关于日期)
1个回答
展开全部
写下这篇文章,主要是记载自己的学习心得,同时也分享给所有正在学习c语言的小白们。
关于日期的输出呢,看起来是挺简单的,但当题目要求输入比如:2019--10--01或者2019--09--10,正在学习c语言的人(包括我)就会卡在这,如何将1~9的“0”一起输出呢?
其实很简单,这里巧用“0”,既然题目说到0n(n代表1~9月或者日期),那我们肯定敏空哗要用到“0”呀,那这个“0”该放桥行哪呢,又是个问题。
但不用慌,想想我们之前的输出,就应该知道这个“0”应该这样 printf("%02d",&n);, 而那个2怎么来的呢,就是代表整个宽度为2(因为月份,日期最大占两位数),即亏渣%04d表示在输出一个小于4位的数值时,将在前面补0使其总宽度为4位。
因此,在日期时应该: printf("%d %02d %02d",year,month,day);
下面直接放题:
按 yyyy/mm/dd 形式从键盘输入一个日期,按yyyy--mm--dd 形式输出该日期,其中 yyyy, mm, dd 分别表示年、月、日。
输入:
2019/10/01
输出:
2019--10--01
#include<stdio.h>
int main()
{
int year,month,day;
scanf("%d/%d/%d",&year,&month,&day);
printf("%d--%02d--%02d",year,month,day);
}
没错这就可以了,这篇呢只是为了巩固做题的思路,以及给所有的小白看的。当然,还需要大佬们的指导。
关于日期的输出呢,看起来是挺简单的,但当题目要求输入比如:2019--10--01或者2019--09--10,正在学习c语言的人(包括我)就会卡在这,如何将1~9的“0”一起输出呢?
其实很简单,这里巧用“0”,既然题目说到0n(n代表1~9月或者日期),那我们肯定敏空哗要用到“0”呀,那这个“0”该放桥行哪呢,又是个问题。
但不用慌,想想我们之前的输出,就应该知道这个“0”应该这样 printf("%02d",&n);, 而那个2怎么来的呢,就是代表整个宽度为2(因为月份,日期最大占两位数),即亏渣%04d表示在输出一个小于4位的数值时,将在前面补0使其总宽度为4位。
因此,在日期时应该: printf("%d %02d %02d",year,month,day);
下面直接放题:
按 yyyy/mm/dd 形式从键盘输入一个日期,按yyyy--mm--dd 形式输出该日期,其中 yyyy, mm, dd 分别表示年、月、日。
输入:
2019/10/01
输出:
2019--10--01
#include<stdio.h>
int main()
{
int year,month,day;
scanf("%d/%d/%d",&year,&month,&day);
printf("%d--%02d--%02d",year,month,day);
}
没错这就可以了,这篇呢只是为了巩固做题的思路,以及给所有的小白看的。当然,还需要大佬们的指导。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询