-->
当前位置:首页 > 题库 > 正文内容

定义日期(Date)结构类型,其中应包括年、月、日三个成员。请实现函数lifeProgress()并编写代码加以验证。该函数接受你的出生日期及当前日期作为参数,计算并返回你的人生使用进度。
说明:按2019年我国居民人均预期寿命77.3岁进行估算;为降低难度,初始版本可以不考虑闰年,按每年365天计算,假设某人出生6900天,则其人生使用进度为6900/(77.3*365)。

下述程序实现了上述题目要求,请将下述程序补充完整,使其可以正确运行。
c++
#include &

Luz2年前 (2022-09-06)题库712
定义日期(Date)结构类型,其中应包括年、月、日三个成员。请实现函数lifeProgress()并编写代码加以验证。该函数接受你的出生日期及当前日期作为参数,计算并返回你的人生使用进度。
说明:按2019年我国居民人均预期寿命77.3岁进行估算;为降低难度,初始版本可以不考虑闰年,按每年365天计算,假设某人出生6900天,则其人生使用进度为6900/(77.3*365)。

下述程序实现了上述题目要求,请将下述程序补充完整,使其可以正确运行。
c++
#include <stdio.h>

struct Date {

int month;

};

float lifeProgress(struct Date birth, struct Date today)
{
//monthDays[i-1]表示i月之前该年共经过了多少天
const int monthDays[12] = {
0,
31,
31+28,
31+28+31,
31+28+31+30,
31+28+31+30+31,
31+28+31+30+31+30,
31+28+31+30+31+30+31,
31+28+31+30+31+30+31+31,
31+28+31+30+31+30+31+31+30,
31+28+31+30+31+30+31+31+30+31,
31+28+31+30+31+30+31+31+30+31+30
};

//从公元元年起到出生日所历经的天数
int iPassingDaysBirth = birth.year*365 + monthDays[birth.month-1] + birth.day;
//从公元元年起到今天所历经的天数
int iPassingDaysToday =
//从出生到今天经过的天数
int iLivingDays =

return (float)iLivingDays/(77.3f*365.0f);
}

int main()
{
struct Date dBirth={1979,1,16}, dToday={2022,8,24};
scanf("%d %d %d",&dBirth.year,&dBirth.month,&dBirth.day);
scanf("%d %d %d",&dToday.year,&dToday.month,&dToday.day);
printf("Life progress: %.1f%%",100.0*lifeProgress(dBirth,dToday));
return 0;
}


示例输入:

1979 1 16
2022 8 24

说明:依次是出生年月日及当前年月日
<br>

示例输出:

Life progress: 56.4%



### 感觉不会?  那试着听听**免费的B站网课**
[简洁的C和C++ - 重庆大学在线课程](https://www.bilibili.com/video/BV1it411d7zx/)
[Python编程基础及应用 - 重庆大学在线课程](https://www.bilibili.com/video/BV1kt411R7uW/)
![image.png](~/6e79c9e3-cb7f-486d-ab78-36b5a8f655c0.png)











答案:
第1空: int year;

第2空: int day;

第3空:today.year*365 + monthDays[today.month-1] + today.day;

第4空:iPassingDaysToday - iPassingDaysBirth;

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。