一道runtime error的题!
给定一个日期,输出这个日期是该年的第几天。Input
输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
Output
对于每组输入数据,输出一行,表示该日期是该年的第几天。
Sample Input
1985/1/20
2006/3/12
Sample Output
20
71
这是我做的答案,
int a[2][13]={{31,28,31,30,31,30,31,31,30,31,30,31},
{31,29,31,30,31,30,31,31,30,31,30,31}};
int i=0;
#define LONG 1000
void year_month_day(int year[],int month[],int day[]);
#include<stdlib.h>
#include<stdio.h>
main()
{
char year,month,day;
int year_[LONG],month_[LONG],day_[LONG];
while(1){
scanf("%d/%d/%d",&year,&month,&day);
if(month<1||month>12||day<1||day>31||year<0)
goto Z;
year_[i]=year,month_[i]=month,day_[i]=day;
i++;
}
Z:
year_month_day(year_,month_,day_);
return 0;
}
void year_month_day(int year[],int month[],int day[])
{
int sum,l,j,count;
for(j=0;j<i;j++){
sum=day[j];
l=year[j]%4==0&&year[j]%100!=0||year[j]%400==0;
for(count=1;count<=month[j]-1;count++)
sum+=a[l][count];
printf("%d",sum);
}
}
在这道题目里,我不这道什么才是循环的条件,所以就随便定义了一个LONG作为循环的条件,
我提交的时候没有通过,显示runtime error,不这道为什么???请大侠们指教一下吧!顺便说说有关acm中编写程序的一些技巧吧!