为什么我的答案是218

来源:4-17 switch与if语句的应用

vivohiVVIP

2018-09-10 20:42

#include <stdio.h>
int main()
{
    /* 定义需要计算的日期 */
    int year = 2008;
    int month = 8;
    int day = 8;
    int i,sum;
    /*
     * 请使用switch语句,if...else语句完成本题
     * 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”
     * 小编还是希望大家独立完成哦~
     */
     sum = 0;
    for(i=1;i<month; i++)
    {
        switch(month)
        {
            case 1:sum += 0;break;
            case 3:
                if(year%400==0||(year%100!=0&&year%4==0))
                {
                    sum += 29;
                }
                else
                {
                    sum += 28;
                }
                break;
            case 2:
            case 4:
            case 6:
            case 9:
            case 11:
                sum += 31;
                break;
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                sum += 30;
                break;
            default:
             printf("日期有误!");
             break;
        }
    }
   
        sum = sum + day;
        printf("%d年%d月%d日是该年的第%d天",year,month,day,sum);
     return 0;
}

写回答 关注

1回答

  • qq_淡烟轻雨丶_0
    2018-09-10 21:21:10

    在 case 语句中没有break,导致从上到下依次执行(就是全部加了一遍)

    vivohi...

    怎么修改? 你试一遍我的程序. 全加一遍不就更大吗?

    2018-09-10 22:14:22

    共 1 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926207 学习 · 20797 问题

查看课程

相似问题