12
23

문제 조건

필수 조건
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
COMMENT