반응형
주어진 문제는 이렇습니다. 입력받을 정수의 개수를 먼저 선언한 뒤, 정수들을 입력했을 때 최소, 최대값만 나오게 하는 것입니다. 일단 문제를 딱 읽었을 때, 배열과 조건문. 그리고 기준이 될 최대&최소 변수의 선언이 필요해보입니다.
#include <stdio.h>
int main()
{
int i,count;
int max = -1000000;
int min = 1000000;
scanf("%d",&count);
int num[count];
for (i=0; i<count; i++)
{
scanf("%d",&num[i]);
}
return 0;
}
따라서 기본적인 틀은 이렇게 잡을 수 있겠습니다. 배열의 크기를 입력받았고 (=입력받을 정수의 개수) 각 배열안에
넣을 정수들을 for문으로 입력받았습니다.
중요한건 최대,최소값의 기준입니다.
max를 가장 낮은 값, min을 가장 높은 값으로 했습니다. 따라서, if문에서 처음에는 무조건 num[0]이 max가 되고 min이 됩니다. 제가 입력한 숫자 25,32,46,8,3을 보면
num[0] = 25
num[1] = 32
num[2] = 46
num[3] = 8
num[4] = 3
입니다. 즉, num[0]은 max=min=25가 되었습니다.
이제 if (num[i]>max)부터 볼게요. num[1]>25라면 max=num[1]이 됩니다. num[1]은 32이므로 max= 32가 되었고
if (num[i]<min)은 32<25는 성립하지 않으므로 min = 25입니다. 이걸 5번째 인덱스까지 반복할 경우
max는 46, min은 3이 됩니다. 하나하나 파헤쳐보면 의외로 어렵지 않습니다.
우리가 기억할 것은 프로그래밍에서 알고리즘과 여러 문법들은 그저 사고력을 현실화시키기 위한 도구일뿐. 수학적 사고력이 가장 중요하므로 한 문제를 두고 끊임없이 고민하도록 합시다.
반응형
'프로그래밍 > C언어' 카테고리의 다른 글
[C언어] # 10. 동적 메모리 할당 malloc 함수 (Stack & Heap 영역) (0) | 2022.02.25 |
---|---|
[C언어] # 9. 포인터에 대한 담백한 이해 (쉽게 설명) (0) | 2022.02.24 |
[C언어] # 7. 1차원 배열 & 2차원 배열 (array 함수) / 문자열에 대하여 (0) | 2022.01.27 |
[C언어] #6. Switch / case문법 (0) | 2022.01.19 |
[C언어] #5. while 반복문과 do ~ while 반복문 (0) | 2022.01.19 |