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

为什么switch不放在if里结果会是225?

如题,switch放在if里答案是对的。


正在回答

2 回答

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

寒月0 提问者

非常感谢!
2016-07-04 回复 有任何疑惑可以回复我~

if只是判断以下语句的

 if(year%400==0||year%4==0&&year%100!=0)

        flag=1;

并没有包括switch

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

举报

0/150
提交
取消

为什么switch不放在if里结果会是225?

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