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

今天看一下这个常见的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}

运行展示:
在这里插入图片描述
好了,基本这个问题也就解决了。类似的我们还可以求其他的不同状况下的输出问题之类。感谢大家的阅读。

  • 43
    点赞
  • 135
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值