Menu
CoddyTech

주요 배열 연산

Coddy C++ 여정의 기초 섹션에 포함된 레슨. 74개 중 66번째.

다음은 몇 가지 일반적인 배열 연산입니다:

  • 배열의 모든 요소의 합을 구하세요:
int numbers[] = {1, 2, 3, 4, 5};
int sum = 0;
for (int number : numbers) {
    sum += number;
}
std::cout << "Sum: " << sum;
  • 배열 요소의 평균을 구합니다:
int numbers[] = {1, 2, 3, 4, 5};
double sum = 0;
for (int number : numbers) {
    sum += number;
}
double average = sum / std::size(numbers);
std::cout << "Average: " << average;
  • 배열에서 최댓값 요소를 찾습니다:
int numbers[] = {1, 5, 2, 9, 3};
int max = numbers[0];
for (int i = 1; i < std::size(numbers); i++) {
    if (numbers[i] > max) {
        max = numbers[i];
    }
}
std::cout << "Max: " << max;
  • 배열에서 최솟값 요소를 찾습니다:
int numbers[] = {1, 5, 2, 9, 3};
int min = numbers[0];
for (int i = 1; i < std::size(numbers); i++) {
    if (numbers[i] < min) {
        min = numbers[i];
    }
}
std::cout << "Min: " << min;
challenge icon

챌린지

쉬움

double 배열과 배열의 크기를 입력으로 받아 다음 작업을 수행하는 calculateStats라는 함수를 작성하세요:

  1. 배열의 모든 요소의 합을 계산합니다.
  2. 배열 요소들의 평균을 계산합니다.
  3. 배열에서 최댓값을 찾습니다.
  4. 배열에서 최솟값을 찾습니다.

함수는 합, 평균, 최댓값, 최솟값 순서로 담긴 double 배열을 반환해야 합니다.


중요 참고 사항:
  • 루프를 제어할 때 size 매개변수를 사용하세요. std::size()는 사용하지 마세요.
  • max와 min을 초기화하려면 arr[0]으로 시작하세요. 배열에 음수만 있는 경우에도 올바르게 작동합니다.
  • 미리 작성된 main() 코드에서는 이미 new를 사용해 동적 배열을 할당하고 delete[]로 해제합니다. 함수 안에서 new double[4]를 사용해 결과 배열을 할당하고 반환하기만 하면 됩니다. 참고: 포인터와 new를 사용한 동적 메모리는 다음 섹션에서 자세히 소개합니다. 여기서는 표시된 new double[4] 패턴을 따르면 됩니다.

권장 접근 방법:
  1. sum = 0, max = arr[0], min = arr[0]으로 초기화합니다.
  2. i = 0부터 i < size까지 반복하면서 합계를 누적하고 필요에 따라 max/min을 갱신합니다.
  3. 평균을 sum / size로 계산합니다.
  4. new double[4]로 새 배열을 할당하고, 네 가지 결과를 순서대로 저장한 뒤 반환합니다.

직접 해보기

#include <iostream>

double* calculateStats(double arr[], int size) {
    // newArr에 저장하기 전에 4개의 값을 계산해야 합니다
    // sum(초깃값 0), max, min(둘 다 초깃값 arr[0]) 변수를 초기화하세요
    // for 반복문을 사용해 배열을 순회하세요
    // 반복문 안에서:
    //   - 각 요소를 sum에 더하세요
    //   - 각 요소를 max와 비교하고 더 크면 max를 갱신하세요
    //   - 각 요소를 min과 비교하고 더 작으면 min을 갱신하세요
    // 반복문이 끝난 후 average = sum / size를 계산하세요
    

    double* newArr = new double[4];
    newArr[0] = sum;
    newArr[1] = average;
    newArr[2] = max;
    newArr[3] = min;

    return newArr;
}

int main() {
    int n;

    std::cin >> n;
    std::cin.ignore();
    double arr[n];

    for (int i = 0; i < n; i++) {
        double val;
        std::cin >> val;
        arr[i] = val;
    }

    double* stats = calculateStats(arr, n);
    std::cout << "Sum: " << stats[0] << std::endl;
    std::cout << "Average: " << stats[1] << std::endl;
    std::cout << "Maximum: " << stats[2] << std::endl;
    std::cout << "Minimum: " << stats[3] << std::endl;
    delete[] stats;
    return 0;
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨

직접 연습해 보세요: 온라인 C++ 컴파일러