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

麻烦大家帮我看看第4-17switch和if语句的应用,作业里的代码这样写可以吗

#include <stdio.h>

int main() 

    /* 定义需要计算的日期 */

    int year = 2008;

    int month = 8;

    int day = 8;

    /*

     * 请使用switch语句,if...else语句完成本题

     * 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”

     * 小编还是希望大家独立完成哦~

     */

        switch(month)

        case 1:

            day+=31;

        case 2:

            if(year%4==0)

            day+=29;

            else

            day+=28;

        case 3:

            day+=31;

        case 4:

            day+=30;

        case 5:

            day+=31;

        case 6:

            day+=30;

        case 7:

            day+=31;

        default:

            day+=31;

            break;

    

    printf("2008年8月8日是该年的第%d天",day);

return 0;

}


正在回答

2 回答

你这样做的结果是month值为8,day值为8,由于case中没有8,所以执行default内容,执行完之后day=31+8=39

另外,闰年的算法:四年一闰,百年不闰,四百年再闰。 例如,2000年是闰年,2100年则不是。

if(year%400==0||year%4==0&&year%100!=0),当除以400为0或除以4为0,并且除以100不为0时执行

你需要前面加个循环,循环1-7这样就可以,case1-case7全部执行一遍.

if(int i =1;i<month;i++){

switch(i)

...

}

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

不偏不易

弄错了。。太久没用C了,循环是for.. for(int i =1;i<month;i++){
2016-02-16 回复 有任何疑惑可以回复我~
#2

扬烨 提问者

thank you very much!
2016-02-16 回复 有任何疑惑可以回复我~
#3

扬烨 提问者 回复 不偏不易

break;/*因为day本来就等于8哈哈*/
2016-02-16 回复 有任何疑惑可以回复我~
查看1条回复

BUBUBU

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

举报

0/150
提交
取消

麻烦大家帮我看看第4-17switch和if语句的应用,作业里的代码这样写可以吗

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