>>574
もちろん、お約束としてエラーチェックはないよ。
とりあえずフローはこんなもんかな。
PrintCalendar(int, int); は自分で考えてね。

static char GetNumber(const char Prompt[], int *Number){
 char Buffer[...];
 printf("%s: ", Prompt); fgets(Buffer, sizeof Buffer, stdin);
 if(Number != 0){ *Number = atoi(Buffer); }
 return Buffer[0];
}

int Year, Month, Command;
while(GetNumber("西暦", &Year) != 'E'){
 if(GetNumber("月", &Month) == 'R'){ continue; }
 do {
  PrintCanlendar(Year, Month);
  Command = GetNumber("Command", 0);
  switch(Command){
  case 'A': break;
  case 'B':
   Month++;
   if(12 < Month){ Year++; Month = 1; }
   break;
  case 'C':
   Month--;
   if(Month < 1){ Year--; Month = 12; }
   break;
  default: printf("??\n");
  }
 } while(Command != 'A');
}