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

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

#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;
}

正在回答

3 回答

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

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

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

bm226 提问者

嗯,判断条件是我忘记了闰年的定义了。 谢谢帮助!
2017-01-14 回复 有任何疑惑可以回复我~

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

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

bm226 提问者

哦,谢谢
2016-12-29 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       924482    人
  • 解答问题       20757    个

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

进入课程

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

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