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

为什么我的答案正确,却过不了

为什么一定要与原答案一样?不是只要正确就可以了吗

提问者:stranger012 2015-12-30 20:37

个回答

  • 奔跑01234567
    2016-01-15 15:13:31

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

    这么写为什么出不来呢?

  • 努力提升
    2015-12-31 09:35:30

    我这样写的代码是没有问题的

    #include <stdio.h>
    int main()
    {
        /* 定义需要计算的日期 */
        int year = 2008;
        int month = 8;
        int day = 8;
        /*
         * 请使用swtich语句,if...else语句完成本题
         * 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”
         * 小编还是希望大家独立完成哦~
         */
       int sum;
       switch(month)
       {
           case 1:sum=0;break;
           case 2:sum=31;break;
           case 3:sum=59;break;
           case 4:sum=90;break;
           case 5:sum=120;break;
           case 6:sum=151;break;
           case 7:sum=181;break;
           case 8:sum=212;break;
           case 9:sum=243;break;
           case 10:sum=273;break;
           case 11:sum=304;break;
           case 12:sum=334;break;
       }
        
        if(year%400==0||year%4==0&&year%100!=0)
        //如果为真那么是闰年,闰年中大于2月份都要加一天
        {
            sum+=day+1;
        }
        else
        {
            sum+=day;   
        }
        printf("2008年8月8日是该年的第%d天",sum);
        return 0;
    }


    除了语法错误,最容易出错的几点:1.拼写错误 2.英文符号写成中文错误3.括号不对称错误

    你自己检查下,估计是这里面的问题

  • 不想做菜鸟的菜鸟
    2015-12-30 20:58:41

     版本问题,同学!不要担心,掌握了知识就好了!不一定要过的呀!