编不出来啊 C语言的题!

请编程统计:从1900年1月1日(当天是星期一)开始经过的n年当中,每个月的13号这一天是星期一、星期二、星期三、……、星期日的次数分别是多少?请使用循环和数组实现。

输入

输入一个整数n (1 <= n <= 100)。

输出

输出7个整数(依次是星期一、星期二、星期三、……、星期日的次数),各数间以空格相隔。

输入示例

1

输出示例

1 3 1 2 2 2 1

数据范围

对于100%的数据,1 <= n <= 100

亲,望采纳!

int n,x,t;
int a[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
int vis[10];//记录周一到周天是13号的次数
int judge(int y)
{
    if((y%4 == 0 && y%100 != 0) || (y%400 == 0))
        return 1;
    else    return 0;
}
 
int main()
{
    cin >> n;
    for(int i=1900;i<1900+n;i++)
    {
        if(judge(i))    a[2]++;
        else    a[2] = 28;
        for(int j=1;j<=12;j++)//月份
        {
            x = 0;
            while(1)
            {
                if(x+1 > a[j])   break;
                x++;
                t = (t+1)%8;
                if(t == 0)  t = 1;
                if(x == 13) vis[t]++;
            }
        }
    }
    for(int i=1;i<=7;i++)
        printf("%d ",vis[i]);
    printf("\n");
    return 0;
}