본문 바로가기

programming language/C 언어

열혈 c프로그래밍 11-1번(최대, 최소)

길이가 5인 int형 배열을 선언해서 프로그램 사용자로부터 5개의 정수를 입력받고 입력이 끝나면 적혀있는 내용을 출력하는 예제이다.

처음 11-1번을 풀때 접근한 방법이다. 최대 최소를 어떻게 나누어 구해야 할지 막막하였다.  결국 풀이를 보았고 

풀이를 보아도 처음에 이해가 가지 않는 부분이 몇몇 있었다.

243행에서 왜? max = min =sum =arr [0] 일까?라고 생각을 하였는데, 

arr [0]은  배열 arr의 첫 번째 요소의 값으로 첫번째값이 곧 max이고 min이고 sum(합)이라는 사실을 깨달았다.

그리고, if절에서 조건식에 max < arr[n]. 이의 if블록 안에 max = arr [n]의 문장이 이해가 가지 않았다. 

처음에 max의 값이 어떤값인지 알고 조건식에 위치해 있으며 max보다 크면 그게 max가 될까?라는 생각을 하였었다.

그런데 위에서 언급했듯이 max = arr[0]의 문장이 있고, 그러므로 max = arr [0]의 상태이다. 즉 값이 있는 상태이므로 위의 조건식 및 위의 if블록에도 위치가 가능하다. 여기서 또 arr [1]인 상황이라 하면 max < arr [1](두 번째 배열 요소의 값)이라면 arr [0] = max <arr [1]인 상황에서 arr [0]이 arr [1]보다 작다면 max값은 arr [1]로 변경된다.

밑에 min의 if문에서도 이와 동일 한 개념이다.