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

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

柒少

2018-12-29 02:22

#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回答

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

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

    柒少

    非常感谢,没注意到执行结束后m的值。傻啦

    2018-12-29 14:31:36

    共 1 条回复 >

C语言入门

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

926211 学习 · 20797 问题

查看课程

相似问题