주요 배열 연산
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]를 사용해 결과 배열을 할당하고 반환하기만 하면 됩니다. 참고: 포인터와new를 사용한 동적 메모리는 다음 섹션에서 자세히 소개합니다. 여기서는 표시된new double[4]패턴을 따르면 됩니다.
권장 접근 방법:
sum = 0,max = arr[0],min = arr[0]으로 초기화합니다.i = 0부터i < size까지 반복하면서 합계를 누적하고 필요에 따라 max/min을 갱신합니다.- 평균을
sum / size로 계산합니다. 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;
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
직접 연습해 보세요: 온라인 C++ 컴파일러