为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

正在回答

3 回答

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

这么写为什么出不来呢?

0 回复 有任何疑惑可以回复我~

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

#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.括号不对称错误

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

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信