inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

문제로 배우는 C언어

2차원 배열 출력3번 문제 질문입니다.

243

hxmkim

작성한 질문수 1

0

int i, j, k = 1, l = 2, m;
    
    int a[6][6];

    for (i = 0; i < 5; i++)
    {
        for (j = 0; j < 5; j++)
        {
            a[i][j] = 0;
// 대각선 숫자
            if (i == j)
            {
                a[i][j] = k;
                k = k + 2;
            }

// 3행 이전
            if (i < 5 / 2)
            {
                if (j == 4 - i)

                {
                     
                    for (m = 0; m <= 1; m++)
                    {
                        a[i][j] = a[m][m] + 1;

                        
                    }
                   
                }
            }

// 3행 이후
            else if (i > 5 / 2 )
            {
                if (j == 4 - i)
                {

// 문제점이라고 생각되는 부분
                    a[i][j] = a[3][3] -1;  

                }
            }
        }
    }


// 출력
    for (i = 0; i < 5; i++)
    {
        for (j = 0; j < 5; j++)
        {
            printf("%7d", a[i][j]);
        }
        printf("\n");
    }
출력 결과입니다.
 1      0      0      0      2
 0      3      0      4      0
 0      0      5      0      0
 0      -1      0      7      0
 6      0      0      0      9

일단 숫자 입력은 보류하였구요,
순서는
1.  0으로 모두 채우고
2. 홀수 숫자 대각선으로,
3. 그 숫자에 +1을 더하는 것입니다.
1행~2행은 [0,0] + 1 = [0,4],
 [1,1] +1 = [0,3] 방법으로 +1을 해주었습니다.

질문은 3~4행에서 
홀수 대각선 숫자를 -1해주려고 하는데 
[3,3] 에서 각각 바로 7로 바로 인식되지 않고, 0다음 7로 인식됩니다.
[4,4]에서도 9로 인식이 안되고, 0으로 인식됩니다.
수정해야 할 부분이 궁금해요ㅜㅜ

c

답변 1

1

김태원

2중 for문이 돌아가는 순서를 생각해보세요.

i=3, j=1인 상황이 i=3, j=3인 상황보다 먼저입니다. 그래서 i=3, j=1인 시점에서는 a[3][3]에는 7이 아직 대입되지 않은 상태입니다.

음료수 자판기 출력이 이상하게 나옵니다

0

142

2

i 값 초기화 질문

0

70

2

recipe for targe 'AA.exe' failed

0

63

1

30과 10의 xor

0

191

1

커리큘럼 문의 드립니다

0

232

1

for문에서 sum 관련 질문

0

179

1

이렇게 풀어도 맞는걸까요?

0

253

2

이렇게 풀어도 맞는 풀이일까요?

0

302

1

20페이지 홀,짝,제로 문제에서 이 코드로 짜도 괜찮을까요?

0

257

1

24. 최솟값 구하기

0

333

1

질문 있습니다.

0

324

1

배열을 전역변수로 설정하는 이유

1

666

1

41. A를 #으로에서 질문 있습니다.

0

291

1

20번 소수 판별하기에서 질문 있습니다.

0

423

1

42번 bus error;;;

0

612

1

정수형 배열에서 배열 크기

0

395

1

38. 자리찾기 커지는 방향으로..

0

303

1

37. 배열의 회전에서 ...

0

280

1

1차원 배열에서

0

270

1

지수연산에서

0

300

1

7.연필 개수 문제

0

381

1

a=(int)a 에서 왜 괄호를 붙이나요 a=int a 는 왜안되나요

0

847

1

섹션 6. 소수

0

323

1

왜 2중for문을 두개 쓴건가요?

0

243

1