考え方: カレンダを書く前に 日曜から始まる場合は1、月曜なら2 という様に 数値を入力するようにします。 プログラムはその数値を基に 空白を書くようにします。 forの終了条件式を i でなく j を使うことで プログラムをシンプルに構成できます。 解答の一例 #include<stdio.h> int main() { int n,i,j; j = 1; scanf("%d",&n); for(i=1; j<= 31 ; i=i+1){ if( i >= n ){ printf(" %2d",j); j=j+1; if( (i % 7) == 0 ) printf("\n"); } else printf(" "); } return 0; }