求个C语言程序.要求输入任意一个年月日的日期.计算出是当年的第多少天.

要求能识别出无用的日期.比如有时2月有28天的.29天的.如2010年2月29日.是错误的.能提示出输入错误.还有日期有30天.31天.一旦错误.都能识别.
uniqq.你是不是在聊闲啊.那你这程序你一辈子都弄不完.

#include<stdio.h>
main()
{
int y,m,d,a[12],t=0,s,i;
printf("输入你要查询的年月日 空格隔开\n");
lop:
scanf("%d%d%d",&y,&m,&d);
a[0]=0;
a[1]=31;
a[3]=31;
a[4]=30;
a[5]=31;
a[6]=30;
a[7]=31;
a[8]=31;
a[9]=30;
a[10]=31;
a[11]=30;
a[12]=31;
if(y%4==0&&y%100!=0) a[2]=29;
else if(y%100==0&&y%400==0) a[2]=29;
else
a[2]=28;
if(m>12||d>a[m]) {printf("错误日期 重新输入!\n");
goto lop;}
else
{
for(i=0;i<=m-1;i++)
{
t=t+a[i];
}
s=t+d;
printf("%d年%d月%d号是%d年的第%d天\n",y,m,d,y,s);
}
}

以前写的 可能不够简洁
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-04-09
很简单呀:
if(date=="20100101")return 1;
else if(date=="20100102")return 2;
else if(...)...;
...;
.
.
.
...;
else return 365;
判断365次就可以啦,不过要考虑一下闰年,嗯