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

恕我懒惰 老师 我觉得答案还要自己累加算 不够智能 我想让计算机算 所以这么做的 但他说我的break不在switch语句中

#include <stdio.h>
int main()
{
    /* 定义需要计算的日期 */
    int year = 2008;
    int month = 8;
    int day = 8;
    int sign;
    if(year%4==0)
    {   
        sign=1;
        switch(sign)
        case 1 :    day+=31;    if(sign==month) break;  sign++;
        case 2 :    day+=28;    if(sign==month) break;  sign++;
        case 3 :    day+=31;    if(sign==month) break;  sign++;
        case 4 :    day+=30;    if(sign==month) break;  sign++;
        case 5 :    day+=31;    if(sign==month) break;  sign++;
        case 6 :    day+=30;    if(sign==month) break;  sign++;
        case 7 :    day+=31;    if(sign==month) break;  sign++;
        case 8 :    day+=31;    if(sign==month) break;  sign++;
        case 9 :    day+=30;    if(sign==month) break;  sign++;
        case 10:    day+=31;    if(sign==month) break;  sign++;
        case 11:    day+=30;    if(sign==month) break;  sign++;
        case 12:    day+=31;    if(sign==month) break;  sign++;
        printf("这是今年的第%d天",day);
    }
    
    
    
    
    else
    {
        sign=1;
        switch(sign)
        case 1 :    day+=31;    if(sign==month) break;  sign++;
        case 2 :    day+=29;    if(sign==month) break;  sign++;
        case 3 :    day+=31;    if(sign==month) break;  sign++;
        case 4 :    day+=30;    if(sign==month) break;  sign++;
        case 5 :    day+=31;    if(sign==month) break;  sign++;
        case 6 :    day+=30;    if(sign==month) break;  sign++;
        case 7 :    day+=31;    if(sign==month) break;  sign++;
        case 8 :    day+=31;    if(sign==month) break;  sign++;
        case 9 :    day+=30;    if(sign==month) break;  sign++;
        case 10:    day+=31;    if(sign==month) break;  sign++;
        case 11:    day+=30;    if(sign==month) break;  sign++;
        case 12:    day+=31;    if(sign==month) break;  sign++;
        printf("这是今年的第%d天",day);
        
    }
    



    return 0;
}

正在回答

4 回答

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


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

如果我没理解错的话,你应该是想写成这样的吧

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

优秀的银 提问者

有偏差 问题我已经自己解决了 谢谢
2019-01-29 回复 有任何疑惑可以回复我~

switch语句要加大括号把case都括起来。。。。。。。。

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

你觉得这个智能?如果满足if条件句,就跳出,后面的sign++能实现吗?


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

优秀的银 提问者

您仔细看下 在不满足if条件下 break不会出现在case语句中, if语句如果只包含一条语句的话就可以不加括号 , 您仔细看下 , 多谢指教
2019-01-27 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

恕我懒惰 老师 我觉得答案还要自己累加算 不够智能 我想让计算机算 所以这么做的 但他说我的break不在switch语句中

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