编写一个函数,手动输入日期(可多个日期同时计算),输出该日期是这一年的第几天,需要注意平闰年。
注意点:1、可多组数据输入,可定义一个二维数组
2、判断平闰年,平年二月28天,闰年29天
3、可先计算该月之前的天数,再加上这个月份对应日期的天数
#include<stdio.h>
#include<stdlib.h>
int main()
{
void input(int arr[][3], int n);
void dispose(int arr[][3], int n);
int n, a[100][3];
printf("请输入需要处理的数据的组数:\n");
scanf_s("%d", &n);
input(a, n);
dispose(a, n);
system("pause");
return 0;
}
void input(int arr[][3], int n) //输入需要计算的日期
{
int i, j;
printf("请输入要判断的日期:\n");
for (i = 0; i < n; i++)
for (j = 0; j < 3; j++)
scanf_s("%d", *(arr + i) + j);
}
void dispose(int arr[][3], int n)
{
int i, j, sum;
int b[12] = { 31,29,31,30,31,30,31,31,30,31,30,31 }; //闰年
int c[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 }; //平年
printf("日期在对应年份的天数为:\n");
for (i = 0; i < n; i++) //判断平闰年
{
sum = 0;
if ((*(*(arr + i)) % 4 == 0 && *(*(arr + i)) % 100 != 0) || (*(*(arr + i) + 0) % 400 == 0))
for (j = 0; j < *(*(arr + i) + 1) - 1; j++) //计算天数并进行输出
{
sum += b[j];
printf("%d", sum);
}
else
{
for (j = 0; j < *(*(arr + i) + 1) - 1; j++)
sum += c[j];
}
sum = sum + *(*(arr + i) + 2);
printf("%d\n", sum);
}
}