#include <stdio.h>
main()
{ 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;
}
那你在循环day之前先print一个空格不就行了