您的位置:首页 > 其它

定义一个结构体变量(包含年月日),写一个函数,计算该日期在本年中为第几天?要求写一个days函数。参数是此结构体类型的变量,返回值是整数。

2014-09-30 21:51 1206 查看
这个问题巧用switch,利用倒序的switch巧妙的计算出天数,此题也可以把每个月的天数算出来,一个月一个月的相加,但是那样写起来非常麻烦,没有这样简单明了

struct date {

int year;

int month;

int day;

};

typedef struct date Date;

//定义结构体

Date date = {2004, 12, 31};

int days = 0;//存储所有的天数

//根据月份进行匹配

//原则:每月只加上前一个月的天数

switch (date.month) {

case 12:

days += 31;

case 11:

days += 30;

case 10:

days += 30;

case 9:

days += 31;

case 8:

days += 31;

case 7:

days += 30;

case 6:

days += 31;

case 5:

days += 30;

case 4:

days += 31;

case 3:

days += isleapYear(date.year) ? 29 : 28 + 31 + date.day;

case 2:

days += 31;

case 1:

days += date.day;

break;

default:

break;

}

return days;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐