关于日期的输出呢,看起来是挺简单的,但当题目要求输入比如: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)
}
没错这就可以了,这篇呢只是为了巩固做题的思路,以及给所有的小白看的。当然,还需要大佬们的指导。
#include <stdio.h>#include <windows.h>
int main()
{
SYSTEMTIME Stime,Etime
GetLocalTime(&Stime)//取得开始计时时间
Sleep(5000)//停5秒
#include<stdio.h>
int year = 0
int month = 0
int day = 0
int hour = 0
int minute = 0
int second = 0
int main()
{
void inputDate() /*输入年-月-日 时:分:秒*/
void nextSceond() /*计算下一秒的时间*/
int leapYear(int year) /*判断是否为闰年*/
int dayMonth(int month) /*返回每个月份对应的天数*/
inputDate()
leapYear(year)
dayMonth(month)
nextSceond()
system("PAUSE")
return 0
}
/*函数inputDate()输入年-月-日 时:分:秒*/
void inputDate()
{
int loop
for(loop = 0loop <3loop++)
{
printf("请输入年-月-日 时:分:秒:")
scanf("%d-%d-%d %d:%d:%d", &year, &month, &day, &hour, &minute, &second)
if(month <1 || month >12)
{
printf("\t月份输入错误!\n")
continue
}
else if(day <1 || day >dayMonth(month))
{
printf("\t日期输入错误!\n")
continue
}
else if(hour <0 || hour >23)
{
printf("\t小时输入错误!\n")
continue
}
else if(minute <0 || minute >59)
{
printf("\t分钟输入错误!\n")
continue
}
else if(second <0 || second >59)
{
printf("\t秒数输入错误!\n")
continue
}
else
{
break
}
}
}
/*函数nextSecond()计算下一秒的时间*/
void nextSceond()
{
if(59 == second)
{
minute += 1
second = 0
if(60 == minute)
{
hour += 1
minute = 0
if(24 == hour)
{
day += 1
hour = 0
if(day >dayMonth(month))
{
month += 1
day = 1
if(13 == month)
{
year += 1
month = 1
}
}
}
}
}
else
{
second += 1
}
printf("%d-%d-%d %d:%d:%d\n",year, month, day, hour, minute, second)
}
/*函数leapYear(int year)判断是否为闰年*/
int leapYear(int year)
{
if(0 == (year % 4 &&0 != year % 100) || 0 == year % 400)
{
return 1
}
else
{
return 0
}
}
/*函数名dayMonth(int month)返回每个月份对应的天数*/
int dayMonth(int month)
{
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31
case 2:
if(0 == (year % 4 &&0 != year % 100) || 0 == year %400)
{
return 29
}
else
{
return 28
}
case 4:
case 6:
case 9:
case 11:
return 30
}
}
请放心使用
有问题的话请追问
满意请及时采纳,谢谢