设计函数days( )函数实现第1题的计算。由主函数将日期(年月日)传递给days( )函数,计算后将日子数传回主函数输出。要求三种实现方式:
a)用结构体成员作为形式参数。
b)用结构体变量作为形式参数。
c)用指向结构体变量的指针作为形式参数。
设计函数days( )函数实现第1题的计a)用结构体成员作为形式参数。 b)用结构体变量作为形式参数。 c)用指向结构体变量的指针作为形式参数。
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 阿里嘎多学长 2023-04-08 17:23关注
以下内容部分参考ChatGPT模型:
思路:
首先定义一个结构体类型Date,包含年、月、日三个成员。
编写函数days( ),用于计算日期距离1900年1月1日的天数。可以使用循环结构,根据年份判断是否是闰年,然后累加月份天数和日数即可。
编写主函数,分别测试三种实现方式。对于第一种方式,直接将结构体成员作为参数传递;对于第二种方式,先定义一个结构体变量,将日期赋值给结构体变量,再将结构体变量作为参数传递;对于第三种方式,先定义一个结构体指针变量,将指针指向结构体变量,再将指针作为参数传递。
示例代码:
#include <stdio.h> typedef struct Date { int year; int month; int day; } Date; // 计算日期距离1900年1月1日的天数 int days(Date date) { int monthDays[12] = {31,28,31,30,31,30,31,31,30,31,30,31}; // 每个月份的天数 int days = 0; for (int y = 1900; y < date.year; y++) { // 计算年份之间的天数 if (y % 400 == 0 || (y % 4 == 0 && y % 100 != 0)) { // 判断是否是闰年 days += 366; } else { days += 365; } } for (int m = 1; m < date.month; m++) { // 计算月份之间的天数 if (m == 2 && (date.year % 400 == 0 || (date.year % 4 == 0 && date.year % 100 != 0))) { // 判断闰年二月天数 days += 29; } else { days += monthDays[m-1]; } } days += date.day - 1; // 加上当月的天数 return days; } int main() { // 测试第一种方式:结构体成员作为参数 Date date1 = {2022, 7, 17}; int days1 = days(date1); printf("%d\n", days1); // 测试第二种方式:结构体变量作为参数 Date date2 = {2022, 7, 18}; int days2 = days(date2); printf("%d\n", days2); // 测试第三种方式:指向结构体变量的指针作为参数 Date date3 = {2022, 7, 19}; Date *pDate = &date3; int days3 = days(*pDate); printf("%d\n", days3); return 0; }
如果我的建议对您有帮助、请点击采纳、祝您生活愉快
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥100 支付宝网页转账系统不识别账号
- ¥15 基于单片机的靶位控制系统
- ¥15 AT89C51控制8位八段数码管显示时钟。
- ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
- ¥15 下图接收小电路,谁知道原理
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
- ¥15 手机接入宽带网线,如何释放宽带全部速度
- ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
- ¥15 ETLCloud 处理json多层级问题