为了账号安全,请及时绑定邮箱和手机立即绑定

求问大神,我这样可以写可以吗?

#include <stdio.h>

int main() 

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

    int year = 2008;

    int month = 8;

    int day = 8;

    /*

     * 请使用switch语句,if...else语句完成本题

     * 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”

     * 小编还是希望大家独立完成哦~

     */

    int sum=0;

    switch(month)

    {

      case 1:sum+=31;break;

      case 2:if(year%4&&year%100==0||year%400==0)

             sum+=29; else sum+=28;break;

      case 3:sum+=31;break;

      case 4:sum+=30;break;

      case 5:sum+=30;break;

      case 6:sum+=31;break;

      case 7:sum+=30;break;

      case 8:sum+=31;break;

      case 9:sum+=31;break;

      case 10:sum+=30;break;

      case 11:sum+=31;break;

      case 12:sum+=30;break;

      sum=sum+day;

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

    } 

return 0;

}


正在回答

2 回答

不可以这样写,你的sum只累积了某个月的天数,并没有累计其他月份的天数

0 回复 有任何疑惑可以回复我~
#1

穿梭时间 提问者

请问为什么加了for之后,计算结果还是错误?
2019-03-22 回复 有任何疑惑可以回复我~
#2

穿梭时间 提问者

明白了,谢谢!
2019-03-22 回复 有任何疑惑可以回复我~

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

    int year = 2008;

    int month = 8;

    int day = 8;

    /*

     * 请使用switch语句,if...else语句完成本题

     * 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”

     * 小编还是希望大家独立完成哦~

     */

    int sum=0;

    int i;

    for(i=1;i<month;i++)

    {

        switch(month)

        {

         case 1:sum+=31;break;

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

             sum+=29; else sum+=28;break;

         case 3:sum+=31;break;

         case 4:sum+=30;break;

         case 5:sum+=31;break;

         case 6:sum+=30;break;

         case 7:sum+=31;break;

        case 8:sum+=31;break;

        case 9:sum+=30;break;

        case 10:sum+=31;break;

        case 11:sum+=30;break;

        case 12:sum+=31;break;

        }  

    }

      sum=sum+day;

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

return 0;

}


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

求问大神,我这样可以写可以吗?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信