C语言switch练习之输入某年某月某日,判断这一天是这一年的第几天。
程序员文章站
2022-04-04 20:17:25
...
今天看一下这个常见的c语言问题,输入某年某月某日,判断这一天是这一年的第几天?
这个问题在平时考试,蓝桥杯考试等都出现过。相信通过今天学习我们可以很明白的掌握相关知识。
今天主要用到一个选择语句switch
其用法大概介绍一下
switch(条件)//是否满足这个条件而进不进入
{
case 条件1://满足条件1
....//执行语句
break//退出
case 条件2:
...
break
.....//可以有好多条件
default://如果不符合上面写的12..的条件,则执行下面的语句
....//语句
}
分析:我们可以通过根据输入的月前的天数加上某日的天数就可以解决了。在这里主要问题是解决闰年,先来看一下闰年介绍:百度上是这么介绍的
也就是说四年一闰,百年不闰,四百年再闰。
好了明白之后,我们就可以写代码了:
#include <stdio.h>
int main()
{
int year,month,day,sum,add;//输入分别为年,月,日,总天数,额外的天数。
printf("\n请输入年月日,格式为:年,月,日。如2020年5月19日则输入2020,05,19\n");
scanf("%d,%d,%d",&year,&month,&day);
switch(month) // 先计算输入的月前的天数
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default:
printf("输入错误,请重新输入月份(在1-12月之间)");break;
}
sum=sum+day; //月前的天数加上输入的某天的天数
if(year%400==0||(year%4==0&&year%100!=0))// 判断是不是闰年
{
add=1;
} else {
add=0;
}
if(add==1&&month>2) { // 如果是闰年且月份大于2,按照现实情况前面的总天数应该加一天
sum=sum+1;
}
printf("这是这一年的第 %d 天。",sum);
return 0;
}
运行展示:
好了,基本这个问题也就解决了。类似的我们还可以求其他的不同状况下的输出问题之类。感谢大家的阅读。
推荐阅读
-
输入某年某月某日,判断这一天是这一年的第几天?
-
ACM日期计算(C++实现):输入一个日期,格式如:2010 10 24 ,判断这一天是这一年中的第几天
-
python简单面试题:输入某年某月某日,判断这一天是这一年的第几天
-
c#输入某年某月某日,判断这一天是这一年的第几天?
-
输入某年某月某日,判断这一天是这一年的第几天?
-
c#输入某年某月某日,判断这一天是这一年的第几天?
-
(python)输入某年某月某日,判断这一天是这一年的第几天?
-
C语言编程——输入某年某月某日,判断这一天是这一年的第几天?
-
输入某年某月某日,判断这一天是这一年的第几天?(C语言*)
-
C语言switch练习之输入某年某月某日,判断这一天是这一年的第几天。