问答详情
源自:4-17 switch与if语句的应用

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

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

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

提问者:柒少 2018-12-29 02:22

个回答

  • Love_baby
    2018-12-29 10:48:29
    已采纳

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