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

帮忙看一下,这一串代码的问题在哪里?感觉是对的啊

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

目前为止独立完成写的最长的代码了,/笑哭。有没有大佬帮忙看一下。

正在回答

1 回答

你这样写,死循环了。你程序里面m最大等于4,而month=8。

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

柒少 提问者

非常感谢,没注意到执行结束后m的值。傻啦
2018-12-29 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

帮忙看一下,这一串代码的问题在哪里?感觉是对的啊

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