본문 바로가기

배열3

[C][2차원배열] 지그재그 초기화 지그재그 초기화 1번째 방식 첫 번째 index부터 초기화를 하고 데이터와 가로 index의 값을 가로의 길이만큼 반복하여 +1 or -1씩 해주는 방법이다. 이렇게 하면 반복의 마지막에 가로의 index를 넘어가기 때문에 가로의 index를 맞춰주고 세로의 index를 +1 해준다. 그림으로 표현하면 이렇다. int arData[4][3] = {}; int nData = 0; int nX = 0; int nY = 0; int nAdd = 0; nData = 1; nAdd = 1; for (int i = 0; i < 4; i++) { for (int j = 0; j < 3; j++) { arData[nY][nX] = nData; nX += nAdd; nData++; } nAdd *= -1; nX += n.. 2018. 1. 1.
[C][배열] Index 변수 배열 Index 변수 배열을 처음 배우면 가장 일반적으로 보게 되는 코드가 있다. for (int i = 0; i < 10; i++) { arData[i] = i + 1; } 바로 위의 코드처럼 for 반복문을 통해서 배열을 초기화하는 코드이다. 위 코드에서 보면 for 반복문에서 사용하는 반복의 횟수에 사용되는 변수 i를 사용하여 배열을 초기화하고 있다. 예제이기 때문에 신경쓰지 않고 사용했었지만 for 반복문에서 사용되는 변수 i는 index로만 사용해야 한다고 한다. 변수 i를 통해서 연산을 하는 것은 매우 좋지 않다고 한다. index로 사용되는 변수를 연산에 사용하게 되는 경우 만약 index의 값이 변경되는 경우 연산의 결과에 영향을 미치기 때문이다. 이런 사소한 코딩 방법론을 무시하면 나중에.. 2018. 1. 1.
[C][배열] indexing 프로그래밍 배열 indexing 프로그래밍 C 언어에서 배열을 사용할 때 index를 활용하면 좋다. 예제로 int형 배열에서 최대 값을 찾는다고 하자. int arData[10] = { 124, 21, 323, 45, 5223, 684, 734, 823, 922, 130 }; int nSum = 0; for (int i = 0; i < 10; i++) { if (nSum < arData[i]) nSum = arData[i]; } 위의 코드처럼 int형 변수를 하나 선언해서 여기에 배열 요소 하나하나 비교해서 큰 값을 저장하고 마지막에 가장 큰 값을 출력하고 있다. 물론 정수 비교이기 이렇게 해도 상관없다. 하지만 이게 다른 type의 변수를 사용한다면 문제가 생기기 시작한다. 그래서 배열의 값을 저장하는 것이 아.. 2018. 1. 1.