定义一个结构体变量(包括年、月、日),计算该日在本年中为第几天?(注意考虑闰年问题),要求写一个函数days,实现上面的计算。由主函数将年月日传递给days函数,计算后将日子传递回主函数输出。
typedef struct date{
int year;
int month;
int day;
}Date;
void days(int year,int month,int day)
{
int sum=0;
int Feb=0;
if (year%400==0) {
Feb=29;
}else if ((year%4==0 )&&
(year%100!=0)){
Feb=29;
}else{
Feb=28;
}
switch (month) {
case1:sum=day;
break;
case2:sum=31+day;
break;
case3:sum=31+Feb+day;
break;
case4:sum=31+31+Feb+day;
break;
case5:sum=31+31+Feb+30+day;
break;
case6:sum=31+31+Feb+30+31+day;
break;
case7:sum=31+31+Feb+30+31+30+day;
break;
case8:sum=31+31+Feb+30+31+30+31+day;
break;
case9:sum=31+31+Feb+30+31+30+31+31+day;
break;
case10:sum=31+31+Feb+30+31+30+31+31+30+day;
break;
case11:sum=31+31+Feb+30+31+30+31+31+30+31+day;
break;
case12:sum=31+31+Feb+30+31+30+31+31+30+31+30+day;
break;
default:
break;
}
printf("为本年的第%d天",sum);
}
int main()
{
Date a;
printf("please input
year:");
scanf("%d",&a.year);
printf("please input
month:");
scanf("%d",&a.month);
printf("please input
day:");
scanf("%d",&a.day);
days(a.year,a.month,a.day);
return0;
}
算法写的水平欠佳但运行结果还算正确
加载中,请稍候......