주요 배열 연산
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;챌린지
쉬움double 배열과 배열의 크기를 입력으로 받아 다음 연산을 수행하는 calculateStats라는 이름의 함수를 작성하세요:
- 배열의 모든 요소의 합계를 계산합니다.
- 배열 요소의 평균을 계산합니다.
- 배열에서 최댓값을 찾습니다.
- 배열에서 최솟값을 찾습니다.
함수는 합계, 평균, 최댓값, 최솟값 순서로 포함된 double 배열을 반환해야 합니다.
중요 참고 사항:
- 루프를 제어할 때
size매개변수를 사용하세요 —std::size()를 사용하지 마세요. max와min을 초기화할 때arr[0]으로 시작하세요 — 이는 배열에 음수만 포함된 경우에도 올바르게 작동합니다.main()에 미리 작성된 코드는 이미new를 사용하여 동적 배열을 할당하고delete[]로 해제합니다 — 여러분은 함수 내부에서new double[4]를 사용하여 결과 배열을 할당하고 반환하기만 하면 됩니다.
권장 접근 방식:
sum = 0,max = arr[0],min = arr[0]으로 초기화합니다.i = 0부터i < size까지 루프를 돌며 합계를 누적하고 필요에 따라 최댓값/최솟값을 업데이트합니다.- 평균을
sum / size로 계산합니다. new double[4]로 새 배열을 할당하고, 네 가지 결과를 순서대로 저장한 후 반환합니다.
치트 시트
C++에서의 일반적인 배열 연산:
모든 요소의 합계:
int numbers[] = {1, 2, 3, 4, 5};
int sum = 0;
for (int number : numbers) {
sum += number;
}요소의 평균:
int numbers[] = {1, 2, 3, 4, 5};
double sum = 0;
for (int number : numbers) {
sum += number;
}
double average = sum / std::size(numbers);최대 요소:
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];
}
}최소 요소:
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];
}
}직접 해보기
#include <iostream>
double* calculateStats(double arr[], int size) {
// newArr에 저장하기 전에 4개의 값을 계산해야 합니다.
// 합계(0에서 시작), 최댓값, 최솟값(둘 다 arr[0]에서 시작)을 위한 변수들을 초기화합니다.
// 배열을 순회하기 위해 for 루프를 사용합니다.
// 루프 내부에서:
// - 각 요소를 합계에 더합니다.
// - 각 요소를 최댓값과 비교하여 더 크면 업데이트합니다.
// - 각 요소를 최솟값과 비교하여 더 작으면 업데이트합니다.
// 평균 = 합계 / 크기를 계산합니다 (루프가 끝난 후).
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;
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.