C语言编程:输入某年某月某日判断这一天是一年的第几天的程序是是什么?

如题所述

第1个回答  2022-11-16
#include \x0d\x0a\x0d\x0a//返回指定年月日是对应年度的第几天\x0d\x0aint getDays(int month,int day);\x0d\x0aint isRunnian(int year);\x0d\x0a\x0d\x0aint main(int argc,char* argv[])\x0d\x0a{\x0d\x0aint year=0;\x0d\x0aint month=0;\x0d\x0aint day=0;\x0d\x0a\x0d\x0aprintf("请输入年月日格式示例20140101\n");\x0d\x0ascanf("%4d%2d%2d",&year,&month,&day);\x0d\x0a\x0d\x0a//简化后的条件,是闰年且月份大于二,则返回天数加一,否则直接返回函数值\x0d\x0aint days = getDays(month,day);\x0d\x0aif (days==0){\x0d\x0aprintf("您输入的日期格式无效。\n");\x0d\x0areturn 0;\x0d\x0a}\x0d\x0aif (isRunnian(year) && month >2){\x0d\x0aprintf("输入日期是对应年份的第%d天",days+1);\x0d\x0a}else{\x0d\x0aprintf("输入日期是对应年份的第%d天",days);\x0d\x0a}\x0d\x0areturn 0;\x0d\x0a}\x0d\x0a\x0d\x0a//循环实现\x0d\x0aint getDays(int month,int day){\x0d\x0aint NUMBER[12]={31,28,31,30,31,30,31,31,30,31,30,31};\x0d\x0aint result=day;\x0d\x0aif (month >12){ //避免出现数组越界情况\x0d\x0areturn 0;\x0d\x0a}\x0d\x0afor (int i=0;i< month-1;i++){//数组下标是从零开始\x0d\x0aresult+= NUMBER[i];\x0d\x0a}\x0d\x0areturn result;\x0d\x0a}\x0d\x0a\x0d\x0aint isRunnian(int year){\x0d\x0a//闰年的条件\x0d\x0a//一:年度是400的整数倍,则是闰年\x0d\x0a//二:年度能被4整除且不能被100整除\x0d\x0areturn year%4 ==0 && year%100 !=0 || year%400 ==0;\x0d\x0a}
相似回答