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

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


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



提问者:Thatgirl 2015-12-17 10:51

个回答

  • 流浪_老
    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里面 应该是==  还有些  标点 你是中文输入写的  还有 好多   你的代码逻辑也有问题  输出不对

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

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