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

챌린지

쉬움

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

  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와 비교하고 더 크면 업데이트하세요
    //   - 각 요소를 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++ 컴파일러