阅读以下说明和C语言函数,填补空缺。
[说明] 已知1900年1月1日是星期一,下面的函数count_5_13(int
year)用于计算给定的年份year中有几个“黑色星期五”。“黑色星期五”指既是13日又是星期五的日期。
函数count_5_13(int
year)首先算出年份year的1月13日是星期几,然后依次计算每个月的13日是星期几,若是星期五,则计数。
程序中使用了函数isLeapYear(int
year),其功能是判断给定年份是否为闰年,返回值为1(或0)分别表示year是(或不是)闰年。
[C语言函数] int Count_5_13(int year)
{ int date;
/*date为0表示星期日,为1~6分别表示星期一至星期六*/ long days=0;
/*days记录天数*/ int m, y, c=0;
/*c用于表示黑色星期五的个数*/ if(year<1900) return-1;
/*计算从1900年1月1日起,至给定年份year的1月13日间隔的天数*/
days=12; for(y=1900; y<year; y++) {
days +=365; if (iSLeapYear(Y)) (1)
; }
date=((days%7)+1)%7;
/*算出给定年份year的1月13日是星期几+/ c=( (2)
)1:0; for(m=1; (3) ; m++)
{ switch(m) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
days=31; break;
case 4: case 6: case 9: case 11:
days=30; break;
case 2: days=28;
if( (4) )days=29;
break; }/*end of switch*/
date=((days%7)+ (5) )%7;
if (date==5) c++; } /*end of for*/
return c; }