|
숙제는 DIY DIY DIY
임기열 님이 쓰신 글 :
: 지금 코드는 가운데 맨 윗줄에 1이 나오고 그 왼쪾 맨 아래에 2가 나오고 대각선으로 쭉 이어지는데
:
: 위에 사진 처럼 좀 바꿔주세요 ~ 가운데 세로 제일 오른쪽에 1이 나오고 그 아래 제일 왼쪽에 2가 나오고 대각선으로 이어지는 식으로요~ 감사합니다~
: 그리고 지금 코드는 세로 줄을 더한값이 다 똑같은데 가로줄이 다 똑같게 바꿔주세요~
: 사진 첨부했습니다
:
:
:
: #include <iostream>
:
: using namespace std;
:
: int arr[30][30];
: void Init (int);
: void magic_Square(int);
:
: int main()
: {
: int r;
: while(1)
: {
: cout << "홀수인 값만 입력 하세요.? ";
: cin >> r;
: while (r%2 == 0 || r<=0)
: {cout << "홀수인 값만 입력 하세요.? ";
: cin >> r;}
: magic_Square(r);
: }
: return 0;
: }
:
: void Init(int cnt)
: {
: for(int i=0;i<cnt;i++) {
: for(int j=0;j<cnt;j++)
: arr[i][j] = 0;
: }
: }
:
: void magic_Square(int cnt)
:
: {
: Init(cnt);
: int pi = 0 , pj = cnt/2;
: int ti , tj;
:
: arr[pi][pj] = 1;
:
: for(int k=2;k<=cnt*cnt;k++)
: {
:
: if(pi==0) ti=cnt-1;
: else ti = pi-1;
: if(pj==0) tj=cnt-1;
: else tj = pj-1;
:
: if(arr[ti][tj]==0)
: {
: pi = ti , pj = tj;
: arr[pi][pj] = k;
: }
: else
: {
: pi = pi + 1;
: arr[pi][pj] = k;
: }
: }
:
: for(int i=0;i<cnt;i++)
: {
: for(int j=0;j<cnt;j++)
: {
: cout << arr[i][j] << "\t";
: }
: cout << endl;
: }
: cout << endl;
: }
|