题目要求:输入年 月 日 则输出改天是该年的第多少天.
方法一: 最原始的
#include
<
stdio.h
>
void
main()
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
int a,b,c,sum,leap,flag=1;
while(flag)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
printf("请输入年、月、日(月份前请不要加0!!) ");
scanf("%d%d%d",&a,&b,&c);
if(a%4<0||b<=0||b>12||c<=0||c>31)
printf("我跳起日啊!!你在搞毛!!想死了是吧,在乱来 ");
else if((a%4==0&&a%100!=0)||(a%400==0))
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
switch(b)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=60;break;
case 4:sum=91;break;
case 5:sum=121;break;
case 6:sum=152;break;
case 7:sum=182;break;
case 8:sum=213;break;
case 9:sum=244;break;
case 10: sum=274;break;
case 11:sum=305;break;
case 12:sum=335;break;
}
leap=sum+c;
printf("您输入的是");
printf("%d",a);
printf("年的第%d天! ",sum);
}
else
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
switch(b)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10: sum=275;break;
case 11:sum=304;break;
case 12:sum=334;break;
}
leap=sum+c;
printf("您输入的是");
printf("%d",a);
printf("年的第%d天! ",sum);
}
printf("continue or not(Y/N)? ");
scanf("%c",&c);
if(c=='y'||c=='Y')
flag=0;
}
}
方法2:优化一点点
#include
<
stdio.h
>
struct
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
int day;
int month;
int year;
}
date;
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
void
main()
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
int days;
printf("input day month year: ");
scanf("%d%d%d",&date.year,&date.month,&date.day);
switch(date.month)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
case 1:days=date.day;break;
case 2:days=31+date.day;break;
case 3:days=59+date.day;break;
case 4:days=90+date.day;break;
case 5:days=120+date.day;break;
case 6:days=151+date.day;break;
case 7:days=181+date.day;break;
case 8:days=212+date.day;break;
case 9:days=243+date.day;break;
case 10:days=273+date.day;break;
case 11:days=304+date.day;break;
case 12:days=334+date.day;break;
}
if((date.year%4==0&&date.year%100!=0)||(date.year%400==0)&&date.month>=3)
days=days+1;
printf("%d ",days);
}
方法3:结构体
#include
<
stdio.h
>
struct
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
int day;
int month;
int year;
}
date;
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
void
main()
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
...
{
int i,days=0;
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
int day_lib[13]=...{0,31,28,31,30,31,30,31,31,30,31,30,31};
printf("input year month day: ");
scanf("%d%d%d",&date.year,&date.month,&date.day);
for(i=0;i<date.month;i++)
days=days+day_lib[i];
days=days+date.day;
if((date.year%4==0&&date.year%100!=0)||(date.year%400==0)&&date.month>=3)
days=days+1;
printf("%d ",days);
}