爱尔兰的威 2021-09-19 09:08 采纳率: 83.3%
浏览 55
已结题

代码没看懂,求专业人士解释,

#include <stdio.h>

int main()

{

/* 定义需要计算的日期 */

int date = 0;

int year = 2008;

int month = 8;

int day = 8;

switch(month)

{

    case 12:date+=30;

    case 11:date+=31;

    case 10:date+=30;

    case 9:date+=31;

    case 8:date+=31;

    case 7:date+=30;

    case 6:date+=31;

    case 5:date+=30;

    case 4:date+=31;

    case 3:

    if((year%4==0&&year%100!=0)||year%400==0)

    {

        date+=29;

    }

    else

    {

        date+=28;

    }
    case 2:

    date+=31;

    case 1:

    date+=day;

    printf("%d年%d月%d日是该年的第%d天",year,month,day,date);

    break;

    default:

    printf("error");

    break;

}

return 0;

}
可不可以解释一下这段代码,没看懂,就那个switch语句后面月份那些代码,谢谢

  • 写回答

3条回答 默认 最新

  • qzjhjxj 2021-09-19 10:41
    关注

    统计2008年8月8日是该年的第几天,按当月即8月的上一个月(7月份)开始统计,从case 8 开始,因为case 后面没有break,所以从8 开始一直往下加,分别统计 7月 6月 5月 ....1月 每个月的天数累加。当统计到2月份时,闰年判断,是闰年就多加1天。到 case 1时,统计的就是当月即8月8日 的天数 8天。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 10月21日
  • 已采纳回答 10月13日
  • 创建了问题 9月19日

悬赏问题

  • ¥15 抖音咸鱼付款链接转码支付宝
  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 求螺旋焊缝的图像处理
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
  • ¥15 itunes恢复数据最后一步发生错误
  • ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了