주요 배열 연산
Coddy C++ 여정의 기초 섹션에 포함된 레슨. 74개 중 66번째.
다음은 몇 가지 일반적인 배열 연산입니다:
- 배열의 모든 요소의 합계를 구합니다:
int numbers[] = {1, 2, 3, 4, 5};
int sum = 0;
for (int number : numbers) {
sum += number;
}
std::cout << "Sum: " << sum;- 배열의 요소의 average를 구합니다:
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;챌린지
쉬움calculateStats라는 이름의 함수를 작성하세요. 이 함수는 double로 이루어진 array와 array의 size를 입력으로 받아 다음 작업을 수행합니다:
- array의 모든 element의 sum을 계산합니다.
- array element의 average를 계산합니다.
- array에서 최댓값 element를 찾습니다.
- array에서 최솟값 element를 찾습니다.
함수는 sum, average, 최댓값, 최솟값을 해당 순서대로 포함하는 double array를 return해야 합니다.
중요 참고 사항:
size매개변수를 사용하여 loop를 제어하세요.std::size()는 사용하지 마세요.max와min을 초기화하려면arr[0]에서 시작하세요. 이렇게 하면 array에 음수만 포함된 경우에도 올바르게 작동합니다.main()에 미리 작성된 코드는 이미new를 사용하여 동적 array를 할당하고delete[]를 사용하여 해제합니다. 여러분은 함수 내부에서new double[4]를 사용하여 결과 array만 할당하고 return하면 됩니다. 참고: 포인터와new를 사용한 동적 메모리는 이후 섹션에서 자세히 소개합니다. 여기서는 제시된new double[4]패턴을 따르기만 하면 됩니다.
권장 접근 방식:
sum = 0,max = arr[0],min = arr[0]을 초기화합니다.i = 0부터i < size까지 loop를 실행하면서 sum을 누적하고 필요에 따라 max/min을 업데이트합니다.- average를
sum / size로 계산합니다. new double[4]를 사용하여 새 array를 할당하고, 네 가지 결과를 순서대로 저장한 다음 return합니다.
직접 해보기
#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;
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
직접 연습해 보세요: 온라인 C++ 컴파일러