c语言 用switch语句解决; 输入一个日期(ymd),求该日期至当年末有多少天?

 我来答
云舒轻寒
2020-04-11 · TA获得超过266个赞
知道小有建树答主
回答量:190
采纳率:85%
帮助的人:39.4万
展开全部

#include <stdio.h>

void main()

{

int y,m,d,day=0;

printf("请输入年月日:");

scanf("%d%d%d",&y,&m,&d);

switch(m)

{

case 1:day+=31-d;break;

case 2:day+=28+((y%4==0&&y%100!=0)||(y%400==0))-d;break;

case 3:day+=31-d;break;

case 4:day+=30-d;break;

case 5:day+=31-d;break;

case 6:day+=30-d;break;

case 7:day+=31-d;break;

case 8:day+=31-d;break;

case 9:day+=30-d;break;

case 10:day+=31-d;break;

case 11:day+=30-d;break;

case 12:day+=31-d;break;

default:day=0;

}

switch(m+1)

{

case 2:day+=28+((y%4==0&&y%100!=0)||(y%400==0));

case 3:day+=31;

case 4:day+=30;

case 5:day+=31;

case 6:day+=30;

case 7:day+=31;

case 8:day+=31;

case 9:day+=30;

case 10:day+=31;

case 11:day+=30;

case 12:day+=31;break;

default:day+=0;

}

printf("该日至当年末有%d天\n",day);

}


听不清啊
高粉答主

2020-04-11 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

输入一个日期(ymd)后,使用FOR循环,并用用switch语句解决循环体中的计算,就可求出该日期至当年末有多少天。

#include<stdio.h>

int main()

{ int y,m,d;

  scanf("%d%d%d",&y,&m,&d);

  d=-d;

  for(; m<13; m++)

    switch(m)

    { case 4:

      case 6:

      case 9:

      case 11:

        d+=30;

        break;

      case 2:

        d+=28+(y%4==0&&y%100||y%400==0);

        break;

      default:

        d+=31;

    }

  printf("%d\n",d);

  return 0;

}

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式