代码如下:
#include<stdio.h>
//定义一个结构体变量 (包括年、月、 日) 。计算该日在本年中是第几天,注意闰年问题。
int my_day(int y,int m,int d);
struct Day{
int year;
int month;
int day;
};
struct Day My_day;
int main(){
float sum=0;
printf("输入年、月、 日\n");
scanf("%d%d%d",&My_day.year,&My_day.month,&My_day.day);
my_day(My_day.year,My_day.month,My_day.day);
return 0;
}
int my_day(int y,int m,int d){
if((y%4==0&&y%100!=0)||y%400==0){
switch (m){
case 1:printf("该日在本年中是第%d天\n",d);break;
case 2:printf("该日在本年中是第%d天\n",31*1+d);break;
case 3:printf("该日在本年中是第%d天\n",31*1+29+d);break;
case 4:printf("该日在本年中是第%d天\n",31*2+29+d);break;
case 5:printf("该日在本年中是第%d天\n",31*2+29+30*1+d);break;
case 6:printf("该日在本年中是第%d天\n",31*3+29+30*1+d);break;
case 7:printf("该日在本年中是第%d天\n",31*3+29+30*2+d);break;
case 8:printf("该日在本年中是第%d天\n",31*4+29+30*2+d);break;
case 9:printf("该日在本年中是第%d天\n",31*5+29+30*2+d);break;
case 10:printf("该日在本年中是第%d天\n",31*5+29+30*3+d);break;
case 11:printf("该日在本年中是第%d天\n",31*6+29+30*3+d);break;
case 12:printf("该日在本年中是第%d天\n",31*6+29+30*4+d);break;
}
}else{
switch (m){
case 1:printf("该日在本年中是第%d天\n",d);break;
case 2:printf("该日在本年中是第%d天\n",31*1+d);break;
case 3:printf("该日在本年中是第%d天\n",31*1+28+d);break;
case 4:printf("该日在本年中是第%d天\n",31*2+28+d);break;
case 5:printf("该日在本年中是第%d天\n",31*2+28+30*1+d);break;
case 6:printf("该日在本年中是第%d天\n",31*3+28+30*1+d);break;
case 7:printf("该日在本年中是第%d天\n",31*3+28+30*2+d);break;
case 8:printf("该日在本年中是第%d天\n",31*4+28+30*2+d);break;
case 9:printf("该日在本年中是第%d天\n",31*5+28+30*2+d);break;
case 10:printf("该日在本年中是第%d天\n",31*5+28+30*3+d);break;
case 11:printf("该日在本年中是第%d天\n",31*6+28+30*3+d);break;
case 12:printf("该日在本年中是第%d天\n",31*6+28+30*4+d);break;
}
return 0;
}
}
Ubuntu运行结果图