C语言给定某年某月某日,将其转换成这一年的第几天并输出。 提示:定义如下的二维数组,根据月份循环求和即可。 int day_tab[2][13]={ {0,31,28,31,30,31,30,31,31,30,31,30,31}, {0,31,29,31,30,31,30,31,31,30,31,30,31}}; **输入格式要求:"%d%d%d" **输出格式要求:"%d"
时间: 2023-08-19 09:26:26 浏览: 160
好的,下面是代码实现:
```c
#include <stdio.h>
int day_tab[2][13] = {
{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31}
};
int leap_year(int year) {
return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
}
int main() {
int year, month, day, i, days = 0;
printf("请输入年月日(格式为:年 月 日):");
scanf("%d%d%d", &year, &month, &day);
for (i = 1; i < month; i++) {
days += day_tab[leap_year(year)][i];
}
days += day;
printf("这一天是这一年的第%d天\n", days);
return 0;
}
```
代码解释:
首先定义了一个二维数组 `day_tab`,用于存储每个月的天数。
然后定义一个函数 `leap_year`,用于判断是否为闰年。如果是闰年,返回1;否则返回0。
接下来用 `scanf` 从键盘输入年月日。
然后使用循环对每个月的天数进行累加,最后再加上当月的天数,得到这一年的第几天。
最后输出结果。
阅读全文