欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C语言switch练习之输入某年某月某日,判断这一天是这一年的第几天。

程序员文章站 2022-04-04 20:17:25
...

今天看一下这个常见的c语言问题,输入某年某月某日,判断这一天是这一年的第几天?
这个问题在平时考试,蓝桥杯考试等都出现过。相信通过今天学习我们可以很明白的掌握相关知识。
今天主要用到一个选择语句switch
其用法大概介绍一下

switch(条件)//是否满足这个条件而进不进入
{
case 条件1//满足条件1
....//执行语句
break//退出
case 条件2...
break
.....//可以有好多条件
default//如果不符合上面写的12..的条件,则执行下面的语句
....//语句
}

分析:我们可以通过根据输入的月前的天数加上某日的天数就可以解决了。在这里主要问题是解决闰年,先来看一下闰年介绍:百度上是这么介绍的

C语言switch练习之输入某年某月某日,判断这一天是这一年的第几天。
也就是说四年一闰,百年不闰,四百年再闰。
好了明白之后,我们就可以写代码了:

#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}

运行展示:
C语言switch练习之输入某年某月某日,判断这一天是这一年的第几天。
好了,基本这个问题也就解决了。类似的我们还可以求其他的不同状况下的输出问题之类。感谢大家的阅读。