求解一道函数题
从键盘输入一个年、月、日,并输出距离下一个年份,即下一年的1月1日,还有几天;并判断今年是否为闰年。(要求自己编写sum_day函数用于求天数,编写leap函数判断今年是否为闰年并在主函数中调用这两个函数。)
程序代码:
#include <stdio.h> int isLeapYear; void leap(int year) { if ( ((year%4)==0 && (year%100)!=0) || ((year%400)==0 && (year%3200)!=0) || (year%172800)==0 ) { isLeapYear = 1; } else { isLeapYear = 0; } } int sum_day(int month, int day) { int list[] = {0,366,335,307,276,246,215,185,154,123,93,62,32}; if (month<1 || month>12) { return -1; } return list[month]-day+((isLeapYear&&month<3)?1:0); } void main() { int year, month, day; printf("输入一个年、月、日,例如 2021 11 15\n"); scanf("%d%d%d", &year, &month, &day); leap(year); printf("距离下一个年份还有 %d 天,今年%s闰年\n", sum_day(month, day), isLeapYear?"是":"不是"); }