~cpp #include <iostream> using namespace std; int main() { int num, line, row; cout << "마방진을 만들겠습니다. 한자리의 홀수를 입력하십시오. "; cin >> num; while (num > 9 || num < 0 || num % 2 == 0) { cout << "잘못 입력하셨습니다.\n한자리의 홀수를 입력하십시오. "; cin >> num; } int mbj[9][9] = {0,0 }; line = num - 1; row = num / 2; for (int i = 0 ; i < num * num ; i++) { mbj[line][row] = i + 1; if (line == num - 1) line = 0; else line++; if (row == num - 1) row = 0; else row++; if (mbj[line][row] != 0) if(line == 0 && row == 0) { line = num - 2; row = num - 1; } else { line -= 2; row--; } } for (i = 0 ; i < num; i++) { for (int j = 0 ; j < num ; j++) { cout.width(2); cout << mbj[i][j] << " "; } cout << endl; } system("pause"); return 0; }