请问这样写错在哪里???

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

bm226

2016-12-28 22:48

#include <stdio.h>
int main()
{
    /* 定义需要计算的日期 */
    int year = 2008;
    int month = 8;
    int day = 8;
    /*
     * 请使用switch语句,if...else语句完成本题
     * 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”
     * 小编还是希望大家独立完成哦~
     */
    int i,j,sum;//j是月份不同天数的三种情况
    for(i=1;i<month;i++)//从1月到month-1月循环
    {
        if(i==2)
        {
            j=2;
        }
        else if(i==4||i==6||i==9||i==11)
        {
            j=3;
        }
        else
        {
            j=1;
        }
        //判断当月属于哪种情况
        switch(j)
        {
        case 1:
            sum+=31;
            break;
        case 2:
            if(!(year%4))
            {
                sum+=29;
            }
            else
            {
                sum+=28;
            }
            break;
        case 3:
            sum+=30;
            break;
        }
        //每月不同情况处理
    }
    sum+=day;  
    printf("2008年的8月8日是该年的第%d天",sum);
 return 0;
}

写回答 关注

2回答

  • 慕粉10031号
    2017-01-12 20:51:45
    已采纳

    sum没有声明初始值,sum=0就不会异常了。

    还有闰年的判断语句是(year%4==0&&year%100!=0)||(year%400==0)

    bm226

    嗯,判断条件是我忘记了闰年的定义了。 谢谢帮助!

    2017-01-14 19:53:03

    共 1 条回复 >

  • qq_言丁_04032055
    2016-12-29 00:55:57

    自己写的代码现在电脑上的编译软件试一下,因为慕课网这个判断太死板了。

    bm226

    哦,谢谢

    2016-12-29 01:30:07

    共 1 条回复 >

C语言入门

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

926023 学习 · 20793 问题

查看课程

相似问题