考え方:
カレンダを書く前に
日曜から始まる場合は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;
}