写一个函数days, 用结构体变量(包括年、月、日)做参数,计算该日在本年中是第几天?主函数将年、月、日传递给days函数,计算后将日子数传回主函数输出。 函数接口定义: int count(struct oneday one); 其中 one 是用户传入的参数。 裁判测试程序样例: #include<stdio.h> struct oneday {int day,month,year;}; main() {struct oneday day1; int allday; scanf("%d,%d,%d",&day1.year,&day1.month,&day1.day); printf("%d\n",count(day1)); } /* 你的程序将被嵌在这里*/ 输入样例: 2008,3,2 输出样例: 62 c语言写程序
时间: 2024-03-02 20:53:56 浏览: 80
结构体变量(包括年、月、日),编程序,要求输入年月日,程序能计算并输出该日在本年中是第几天
以下是实现题目要求的代码:
```
#include<stdio.h>
struct oneday {
int day,month,year;
};
int count(struct oneday one) {
int days_in_month[] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; //每个月的天数
int days = 0;
int i;
//判断是否为闰年
if((one.year % 4 == 0 && one.year % 100 != 0) || (one.year % 400 == 0)) {
days_in_month[2] = 29;
}
//累加月份前的天数
for(i = 1; i < one.month; i++) {
days += days_in_month[i];
}
//加上当月的天数
days += one.day;
return days;
}
int main() {
struct oneday day1;
int allday;
scanf("%d,%d,%d",&day1.year,&day1.month,&day1.day);
printf("%d\n",count(day1));
return 0;
}
```
程序的实现思路如下:
1. 定义一个包含年、月、日的结构体变量 `oneday` 。
2. 定义一个函数 `count` ,用于计算该日在本年中是第几天。
3. 在函数内部,定义一个数组 `days_in_month` 存储每个月的天数。判断是否为闰年,如果是则将二月份的天数改为 29 。
4. 使用循环累加月份前的天数,在加上当月的天数,最终得到该日在本年中的天数。
5. 在主函数中,读入年、月、日,并将其传递给函数 `count` 进行计算,最终输出结果。
阅读全文