#include<stdio.h> struct date { int year; int month; int day; }; int main() { int i, d = 0; int year1; int month1; int day1; int days[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 } }; scanf_s("%d", &year1); scanf_s("%d", &month1); scanf_s("%d", &day1); if (year1 % 4 == 0 && year1 % 100 != 0) { for (i = 1; i < month1; i++) { d = d + days[1][i]; } d = d + day1; } else { for (i = 1; i < month1; i++) { d = d + days[0][i]; } d = d + day1; } struct date date1 = { year1,month1,day1 }; printf("%d%d%d是该年的第%d天\n", year1, month1, day1, d); }在此函数的基础上,由主函数将年、月、日传递给days函数,计算后将日子数传回主函数输出。