这是打年历的,我可以输出12个月的天数,但是求怎样讲每月1号前面的空格打出来?(语言-c++)

#include <stdio.h>
main()
{ int a[6];
int yue,year,day;
printf("输入年份");
scanf("%d",&year);
printf("%d\n",year);
yue=0;
while(yue++<12)
{ printf("%d月",yue);
switch(yue)
{ case 4 :case 6 :case 9 :case 11:
day=30;break;
case 1: case 3:case 5:case 7:case 8:case 10: case 12:
day=31;break;
case 2:
if(year%4==0&&year%400==0!=year%100==0)
day=29;
else day=28;break;}
printf("\n");
int i=0,k,j;
for(k=0;k<7;k++)
printf("%3d",k);
printf("\n");
{for (i=1;i<=day;i++)
if(i%7==0)
{ printf("%3d",i)
printf("\n");}
else printf("%3d", i);
}
printf("\n");
}}

//打印完当月后会记录最后一行已占用长度,在下个月提前空出相应的空位
#include <stdio.h>
int main()
{
    int yue, year, day;
    printf("输入年份");
    scanf("%d", &year);
    printf("%d\n", year);
    yue = 0;
    int num = 0;
    while (yue++ < 12)
    {
        printf("%d月", yue);
        switch (yue)
        {
        case 4:case 6:case 9:case 11:
            day = 30; break;
        case 1: case 3:case 5:case 7:case 8:case 10: case 12:
            day = 31; break;
        case 2:
            if (year % 4 == 0 && year % 400 == 0 != year % 100 == 0)
                day = 29;
            else day = 28; break;
        }
        printf("\n");
        int i = 0, k, j;
        for (k = 0; k < 7; k++)
            printf("%3d", k);
        printf("\n");
        for (i = 0; i < num; i++)
        {
            printf("%3c", ' ');
        }
        for (i = 1; i <= day; i++)
            if ((i+num) % 7 == 0)
            {
                printf("%3d", i);
                printf("\n");
            }
            else printf("%3d", i);
        num = (day + num) % 7;
        printf("\n");
    }
    return 0;
}