给定一个日期,输出这个日期是该年的第几天

2024-12-02 20:32:30
推荐回答(1个)
回答1:

那个t=0应该写在最外层while循环体里面,按你写的那样只有在不是闰年的时候对天数进行初始化,是闰年时就没有初始化了,也就是闰年时会在运算结果的基础上加上你上次的运算结果,所以结果就错误了,以下是正确代码。
#include
int main()
{
int s[2][12]={{31,29,31,30,31,30,31,31,30,31,30,31},{31,28,31,30,31,30,31,31,30,31,30,31}};
int a,b,c,t=0,i,j;
while(scanf("%d/%d/%d",&a,&b,&c)!=EOF)
{
t=0;
if(a%4==0&&a%100!=0||a%400==0)
{
i=0;
for(j=0;j t=t+s[i][j];
printf("%d\n",t=t+c);
}
else
{
i=1;
for(j=0;j t=t+s[i][j];
printf("%d\n",t=t+c);
}
}
}
顺便问一句,你循环条件的!=EOF是什么意思?怎样通过输入结束这个程序?