프로그래밍/C

[C언어-응용문제] 배열에서 최댓값과 최솟값 찾기

록스타★ 2024. 11. 23. 13:17
반응형

배열에서 최댓값과 최솟값 찾기

사용자로부터 정수 배열의 크기와 각 원소를 입력받아, 해당 배열에서 최댓값과 최솟값을 찾고 출력하는 프로그램을 작성하세요.

 

사용 개념:
배열
반복문 (for)
조건문 (if)
표준 입출력 (scanf, printf)

 


풀이 방법

  1. 배열 크기 입력받기
    • 배열의 크기를 scanf를 사용해 입력받습니다.
  2. 배열 원소 입력받기
    • for 반복문을 사용해 배열의 각 원소를 입력받습니다.
  3. 최댓값과 최솟값 초기화
    • 최댓값과 최솟값 변수를 배열의 첫 번째 원소로 초기화합니다.
  4. 최댓값과 최솟값 찾기
    • for 반복문으로 배열을 순회하며 각 원소를 최댓값 및 최솟값 변수와 비교합니다.
    • 현재 값이 최댓값보다 크다면 최댓값을 업데이트, 최솟값보다 작다면 최솟값을 업데이트합니다.
  5. 결과 출력
    • 최댓값과 최솟값을 printf를 사용해 출력합니다.

 


코드 예시

#include <stdio.h>

int main() {
    int n; // 배열 크기
    printf("배열의 크기를 입력하세요: ");
    scanf("%d", &n);

    int arr[n]; // 배열 선언
    printf("배열의 원소를 입력하세요:\n");
    for (int i = 0; i < n; i++) {
        scanf("%d", &arr[i]); // 배열 원소 입력
    }

    // 최댓값과 최솟값 초기화
    int max = arr[0];
    int min = arr[0];

    // 배열 탐색
    for (int i = 1; i < n; i++) {
        if (arr[i] > max) {
            max = arr[i]; // 최댓값 업데이트
        }
        if (arr[i] < min) {
            min = arr[i]; // 최솟값 업데이트
        }
    }

    // 결과 출력
    printf("배열의 최댓값: %d\n", max);
    printf("배열의 최솟값: %d\n", min);

    return 0;
}

 


코드 설명

1. 배열 크기 입력 받기

- scanf를 사용해 배열의 크기를 입력받습니다.

printf("배열의 크기를 입력하세요: ");
scanf("%d", &n);

 

2. 배열 원소 입력 받기

- for 반복문으로 배열의 각 원소를 입력받습니다.

printf("배열의 원소를 입력하세요:\n");
for (int i = 0; i < n; i++) {
    scanf("%d", &arr[i]);
}

 

3. 최댓값과 최솟값 초기화

- max, min 변수를 배열의 첫 번째 원소로 초기화합니다.

int max = arr[0];
int min = arr[0];

 

4. 최댓값과 최솟값 찾기

- 배열의 두 번째 원소부터 시작해 각 원소를 탐색

- if문으로 최댓값 최솟값 최신화

for (int i = 1; i < n; i++) {
    if (arr[i] > max) {
        max = arr[i];
    }
    if (arr[i] < min) {
        min = arr[i];
    }
}

 

5. 결과 출력

printf("배열의 최댓값: %d\n", max);
printf("배열의 최솟값: %d\n", min);

 

 

6. 실행 결과 예시

배열의 크기를 입력하세요: 5
배열의 원소를 입력하세요:
10
20
5
30
15
배열의 최댓값: 30
배열의 최솟값: 5

 


배열에서 max, min 인덱스도 출력할 수 있고 음수와 양수 비율 계산 프로그램등으로도 추가할 수 있습니다.

 

반응형