題目:計算某日是該年的第幾天
自定義一個函數計算天數
首先要判斷該年是否為閏年,代碼如下:
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;
}
程式運作結果如下: