我这个哪里错了啊
#include <algorithm>
#include <iostream>
#include <stdio.h>
using namespace std;
int fun(int n)
{
return (n%400==0)||(n%4==0&&n%100);
}
int main()
{
int year,month,t;
int k;
long long sum=0;
int a[2][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}
};
cin>>year>>month;
printf("---------------------\n");
printf(" Su Mo Tu We Th Fr Sa\n");
printf("---------------------\n");
for(int i=2007;i<year;i++){
if(fun(i)) sum+=366;
else sum+=365;
}
for(int i=0;i<month-1;i++){
sum+=a[fun(year)][i];
}
t=a[fun(year)][month-1];
switch(sum%7+1){
case 1:printf(" 1 2 3 4 5 6\n"),k=6;break;
case 2:printf(" 1 2 3 4 5\n"),k=5;break;
case 3:printf(" 1 2 3 4\n"),k=4;break;
case 4:printf(" 1 2 3\n"),k=3;break;
case 5:printf(" 1 2\n"),k=2;break;
case 6:printf(" 1\n"),k=1;break;
case 7:printf(" 1 2 3 4 5 6 7\n"),k=7;break;
}
int j=0;
for(k++;k<=t;k++){
printf("%3d",k);
if((j+1)%7==0) printf("\n");
j++;
}
if((j-1)%7!=0) cout<<endl;
printf("---------------------\n");
return 0;
}