문제 조건
필수 조건
5개의 숫자를 입력 받아 배열에 저장한 뒤 합과 평균을 출력하는 기능.
합과 평균을 구하는 부분을 함수로 구현.
5개가 아닌 N개의 입력을 받는다고 가정하고 재사용성을 고려한 코드.
도전 조건
(오름차순/내림차순) 정렬 알고리즘이 정확히 동적하는지.
자신이 작성한 알고리즘의 정렬과정을 명확하게 설명할 수 있는지 확인.
정렬 알고리즘 구현시 중복 코드를 최소화 해서 코드를 작성했는지 확인.
결과창

코드
더보기
#include <iostream>
using namespace std;
int sum(int arr[], int size)
{
int x = 0;
for (int i = 0; i < size; i++)
{
x += arr[i];
}
return x;
}
int average(int arr[], int size)
{
int x = sum(arr, size);
x /= size;
return x;
}
void Ascending(int arr[], int size)
{
int i, j, temp = 0;
for (i = 0; i < size; i++)
{
for (j = i; j < size; j++)
{
if (arr[i] > arr[j])
{
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
cout << "오름차순 정렬 : ";
for (int i = 0; i < size; i++)
{
cout << arr[i] << " ";
}
cout << endl;
}
void Descending(int arr[], int size)
{
int i, j, temp = 0;
for (i = 0; i < size; i++)
{
for (j = i; j < size; j++)
{
if (arr[i] < arr[j])
{
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
cout << "내림차순 정렬 : ";
for (int i = 0; i < size; i++)
{
cout << arr[i] << " ";
}
cout << endl;
}
int main()
{
int n;
cout << "입력할 수의 개수 : ";
cin >> n;
int* arr = new int[n];
for (int i = 0; i < n; i++)
{
cout << i+1 << "번째 입력할 수 : ";
cin >> arr[i];
}
cout << "수의 합은 : " << sum(arr, n) << endl;
cout << "수의 평균값은 : " << average(arr, n) << endl;
//오름차순 불러오기
Ascending(arr, n);
//내림차순 불러오기
Descending(arr, n);
return 0;
}
코드 해설
각 합과 평균값은 int로 함수를 만들었다.
그리고 오름차순과 내림차순을 구현한 함수를 따로 만들어준다.
중복 코드에 대해서는 내일 더 생각해서 고쳐보기로...
'코딩 > 코드 문제 묶음' 카테고리의 다른 글
| [프로그래머스] 제일 작은 수 제거하기 (0) | 2024.12.31 |
|---|---|
| C++ 연습문제_3 (0) | 2024.12.24 |
| C++ 연습 문제_1 (1) | 2024.12.23 |
| 오늘의 코딩 3일차 (1) | 2023.10.20 |
| 오늘의 코딩 2일차 (0) | 2023.10.19 |