请问哪里错了,求大神详解,万分感谢~~

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

Thatgirl

2015-12-17 10:51


#include <stdio.h>
int main()
{
    int year = 2008;
    int month = 8;
    int day = 8;
    switch(day)
    {
        case 1:day=0;break;

       case 2:day=31;break;

        case 3:day+=29;
        if(year%400=0)
            flag=1;
        else
            flag=0;day+=28;
        break;
        case 4:day+=31;break;
        case 5:day+=30;break;
        case 6:day+=31;break;
        case 7:day+=30;break;
        case 8:day+=31;break;
        case 9:day+=31;break;
        case 10:day+=30;break;
        case 11:day+=31;break;
        case 12:day+=30;break;
        default:day+=8;break;
        printf("%d年%d月%d日是改年的第%d天", year,month,day);
        return 0;
    }



写回答 关注

2回答

  • 流浪_老
    2015-12-17 22:28:17

    #include <stdio.h>

    int main() 

        int year = 2008,flag;

        int month = 8;

        int day = 8;

        int day1=day;

        switch(day)

        {

            case 1:day1=0;break;

           case 2:day1=31;break;

            case 3:day1+=29;

            if(year%400==0)

                flag=1;

            else

                flag=0;day1+=28;

            break;

            case 4:day1+=31;break;

            case 5:day1+=30;break;

            case 6:day1+=31;break;

            case 7:day1+=30;break;

            case 8:day1+=31;break;

            case 9:day1+=31;break;

            case 10:day1+=30;break;

            case 11:day1+=31;break;

            case 12:day1+=30;break;

            default:day1+=8;break;

           

        }

         printf("%d年%d月%d日是改年的第%d天", year,month,day,day1);

            return 0;

    }

    这是改过的代码 你的代码错了很多地方  我这个不是对的 只是编译没了错误  你的错有   if里面 应该是==  还有些  标点 你是中文输入写的  还有 好多   你的代码逻辑也有问题  输出不对

    流浪_老

    逻辑 你再自己考虑 一下

    2015-12-17 22:28:46

    共 1 条回复 >

  • mosci
    2015-12-17 11:01:02

    。。。你能不能换个变量名,你前面int day。case里又用day,相当于printf X年X月 day日是该年的day天。而且第一个case1 应该是0,一月一号是该年第一天,不是31

C语言入门

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

926021 学习 · 20793 问题

查看课程

相似问题