题目:计算某日是该年的第几天
自定义一个函数计算天数
首先要判断该年是否为闰年,代码如下:
year % 4 == 0 || year % 100 != 0 || year % 400 == 0
然后调用数组输出闰年平年的每个月天数:
int arr_day[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
int arr_leap_day[12] = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
引入一个中间变量用于累计天数
具体代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int ChackDay(int year, int month, int day) {
int count = 0;
int arr_day[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
int arr_leap_day[12] = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
if (year % 4 == 0 || year % 100 != 0 || year % 400 == 0) {
int i = 0;
for (; i < month - 1; i++) {
count += arr_leap_day[i];
}
}
else {
int i = 0;
for (; i < month - 1; i++) {
count += arr_day[i];
}
}
count += day;
return count;
}
int main() {
int year = 0;
int month = 0;
int day = 0;
printf("请输入年月日:");
scanf("%d %d %d", &year, &month, &day);
if (year < 0 || month < 0 || month > 12 || day < 0 || day > 31) {
printf("您的输入有误!\n");
}
else {
int num = 0;
num = ChackDay(year, month, day);
printf("这一天是第%d天\n", num);
}
system("pause");
return 0;
}
程序运行结果如下: