どこを修正し、どうすれば正しく表示されるのか教えてください
#include <stdio.h>
#include <stdlib.h>
int main( )
{
int year, month, num, leap, a, b, c, d, e, f, g, i, j, x;
j = 1;
x = 1;
printf("年=") ; scanf("%d",&y) ;
printf("月=") ; scanf("%d",&m) ;
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
num = 31;
} else if (month == 4 || month == 6 || month == 9 || month == 11 ) {
num = 30;
} else if (month == 2) {
if (year % 4 == 0 && (year % 100 != 0 || year % 400 ==0)) {
leap = 28;
} else {
leap = 29;
}
num = leap;
}
if ( month == 1 || month == 2) {
month+=12;
}
b = year % 100;
a = (year - b)/100;
c = 26 * (month + 1) / 10;
d = b / 4;
e = a / 4;
f = (1 + c + b + d + e - 2 * a) % 7;
g = (f + 6) % 7;
if(month == 13){
g--;
}
if(month > 12){
month = month - 12;
}
printf("%d 年 %d 月", year, month);
printf("\n");
printf("月 火 水 木 金 土 日\n");
for (i = 0; i < g - 1; i++) {
printf(" ");
x++;
}
if (g == 0){
for (i = 0; i < 6; i++) {
printf(" ");
}
}
for (i = 0; i < num; i++) {
if (j < 10) {
printf(" ");
}
printf("%d ", j);
if(g == 0 && j == 1){
printf("\n");
x = 0;
}
if (x == 7) {
printf("\n");
x = 0;
}
j++;
x++;
}
printf("\n");
return 0;
}