求教!看看这个程序有啥错误
输入年份后出不来#include<stdio.h>
int date[12][6][7];
int day_tbl[][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};
main()
{int a,b,c,i,j,k,day;
int year;
char title[]="周日 周一 周二 周三 周四 周五 周六";
system("cls"); /*清屏*/
printf("请输入年份:");
scanf("%d %*c",&year); /*输入年份,读取字符但不赋值*/
a=w(year,1,1);
b=year%4==0&&year%100||year%400==0; /*判断是否为闰年*/
for(i=0;i<12;i++)
for(j=0;j<6;j++)
for(k=0;k<7;k++)
date[i][j][k]=0; /*日期表为0*/
for(i=0;i<12;i++) /*一年为12个月*/
for(c=0,day=1;day<=day_tbl[b][i];day++)
{date[i][c][a]=day; /*将第i+1月的日期填到日期表中*/
a=++a%7; /*每周七天,从0到6*/
if(a==0) c++; }} /*日期表每七天一行,周日开始新的一行*/
long int f(int year,int month)
{if(month<3)
return year-1;
return year; }
long int g(int month)
{if(month<3)
return month+13;
return month+1; }
long int n(int year,int month,int day)
{return 1461L*f(year,month)/4+153L*g(month)/5+day;}
int w(int year,int month,int day)
{return (int)((n(year,month,day)%7-621049L%7+7)%7);}