遇到一个有意思的编程题,使用C语言实现计算今天是该年的第几天。
实现代码如下:
#include<stdio.h>
int d[12]={31,28,31,30,31,30,31,31,30,31,30,31};
//将每月天数存在数组中(类似字典)
int add(int months,int flag,int days)//计算天数
{
int num=0,i=0;
if(flag>0)//判断闰年
{
if(months>2)//判断月份是否包含闰年二月
num=num+1;
}
for(i=0;i<months-1;i++)//计算天数
{
num=num+d[i];
}
num=num+days;//添加当月天数
return num;
}
int main()
{
int year,months,days,flag=0;
//scanf("%d,%d,%d",&year,&months,&days);
year=2024;
months=3;
days=24;
if(year>0&&year<3000&&months<13&&months>0&&days>0&&days<32)
//限制正常输入
{
if(year%4==0&&year%100!=0||year%400==0)
//判断是否为闰年
{
flag=1;
}
printf("the days is %d",add(months,flag,days));
}
else
printf("error input\n");
return 0;
}
代码写的比较潦草,不足之处还望指出告知。
参考文章:
https://cloud.tencent.com/developer/article/1815427