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

哪里错了,求解

#include <stdio.h>
int main()
{
    /* 定义需要计算的日期 */
    int year = 2008;
    int month = 8;
    int day = 8;
    /*
     * 请使用swtich语句,if...else语句完成本题
     * 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”
     * 小编还是希望大家独立完成哦~
     */
    int sum,flag;
    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;
        default:printf("一年只有十二个月");break;
    }
    sum=sum+day;
    if(year%400==0||(year%4==0&&year%100!=0)
        flag=1;
    else
        flag=0;
    if(flag=1&&month>2)   
    sum++;   
    printf("%d年%d月%d日是该年的第%d天",year,month,day,sum);





    return 0;
}
  
   
   
   
   





 return 0;
}

提问者:穿越2 2015-07-10 10:10

个回答

  • Perona
    2015-07-10 10:57:15
    已采纳

    default:printf("一年只有十二个月");break;

    这里分号错了,换成英文的

    default:printf("一年只有十二个月");break;
    if(year%400==0||(year%4==0&&year%100!=0)

    这里缺了)

    if(year%400==0||(year%4==0&&year%100!=0))
     printf("%d年%d月%d日是该年的第%d天",year,month,day,sum);

    这里逗号错了,换成英文的

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

    2个retrue 0;},删掉一个即可

    完整的代码

    #include <stdio.h>
    int main() 
    { 
        /* 定义需要计算的日期 */
        int year = 2008;
        int month = 8;
        int day = 8;
        /*
         * 请使用swtich语句,if...else语句完成本题
         * 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”
         * 小编还是希望大家独立完成哦~
         */
        int sum,flag;
        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;
            default:printf("一年只有十二个月");break;
        }
        sum=sum+day;
        if(year%400==0||(year%4==0&&year%100!=0))
            flag=1;
        else
            flag=0;
        if(flag=1&&month>2)    
        sum++;    
        printf("%d年%d月%d日是该年的第%d天",year,month,day,sum);
        return 0;
    }


  • 穿越2
    2015-07-10 15:18:52

    再帮我看看这个,前面那个被我删了

    #include <stdio.h>
    int main()
    {
        /* 定义需要计算的日期 */
        int year = 2008;
        int month = 8;
        int day = 8;
        /*
         * 请使用swtich语句,if...else语句完成本题
         * 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”
         * 小编还是希望大家独立完成哦~
         */
        int sum,flag;
        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;
            default:printf("%s\n","一年只有十二个月");
        }
        sum=sum+day;
        if(year%400==0||(year%4==0&&year%100!=0))
            printf(flag=1);
        else
            printf(flag=0);
        if(flag=1&&month>2)
        sum++;
        printf("%d年%d月%d日是该年的第%d天",n);



     return 0;
    }