用C语言编写:输入某年某月某日,判断这一天是这一年的第几天?

希望简单点 我是初学 看懂太多命令

main()
{
int n,year,month,day,month_day_sum=0,sum,
month_day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
printf("please input the \"year month day\"\n");
scanf("%d%d%d",&year,&month,&day);
if(year%100!=0&&year%4==0||year%400) month_day[2]=29;
if(day>31||day<1||month>12||month<1) printf("error");
else
{
for(n=1;n<month;n++) month_day_sum+=month_day[n];
sum=month_day_sum+day;
printf("%d",sum);
}
getch();
}
在WIN-TC调试通过
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-06-07
楼上的是正确的:
#include<stdio.h>
void main()
{
int nian,yue,ri,leap,sum;
printf("\n 请输入年月日: \n");
scanf("%d%d%d",&nian,&yue,&ri);
switch(yue)
{
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=273;
break;
case 11:sum=304;
break;
case 12:sum=334;
break;
default:
printf("\n 数据错误 \n");
}
sum=sum+ri;
if((nian%400==0) ||(nian%4==0 && nian%100!=0 ))//楼上的只是在这里丢了个括号//
leap=1;
else
leap=0;
if(leap==1 && nian>3)
sum++;
printf("\n 这一天是这一年的第 %d 天 \n",sum);
}
第2个回答  2019-09-18
//主要功能是实现了
#include<stdio.h>
struct
date
{
int
y,m,d;
};
int
fun(struct
date
*p)
{

int
a=0;

switch(p->m)

{case
12:a+=30;//加上11月份的天数

case
11:a+=31;//加上10月份的天数,以下依次类推

case
10:a+=30;

case
9:a+=31;

case
8:a+=31;

case
7:a+=30;

case
6:a+=31;

case
5:a+=30;

case
4:a+=31;

case
3:if(p->y%4==0&&p->y%100!=0||p->y%400==0)
a+=29;else
a+=28;

case
2:a+=31;

case
1:a+=p->d;

}
return
a;
}
int
main()
{
struct
date
d,*pd;
int
i;

char
a,b;
pd=&d;
printf("以yy.mm.dd的格式输入一个日期\n");
scanf("%4d%c%2d%c%2d",&pd->y,&a,&pd->m,&b,&pd->d);
i=fun(pd);
printf("是该年的第%d天\n",i);
return;
}
第3个回答  2007-06-07
#include<stdio.h>
void main()
{
int nian,yue,ri,leap,sum;
printf("\n 请输入年月日: \n");
scanf("%d%d%d",&nian,&yue,&ri);
switch(yue)
{
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=273;
break;
case 11:sum=304;
break;
case 12:sum=334;
break;
default:
printf("\n 数据错误 \n");
}
sum=sum+ri;
if((nian%400==0) || (nian%4==0 && nian%100!=0 )
leap=1;
else
leap=0;
if(leap==1 && nian>3)
sum++;
printf("\n 这一天是这一年的第 %d 天 \n",sum);
}
相似回答