728x90
반응형

 

오늘 알게된 새로운(?) cpp를 공부하면서 느낀 점은 가장 기본적인 것부터 공부하면서 알게되었습니다.

 

그동안 using namespace std;를 써서

네임스페이스를 활용하여왔는데 매번 std::를 표기해주는 버릇을 들이는 편이 좋다는 것이었습니다.

 

std 네임스페이스를 가져올때 이름선언이 충돌할 수 도 있기때문입니다. 

지금이야 간단한 연습용 코드들만 쓰기때문에 문제가 없어왔지만

실무로 들어가게 되면 보다 구조가 복잡하고 양이 많은 상용수준의 코드에서는 충돌경우가 많기때문에 std::를 표현하는것이 더 훌륭한 코드연습입니다.

 

또한 pow함수에 대해 잊고있었는데 cmath가 제공하는 함수로 제곱수가 가능합니다.

pow(5,4) = 5의 4제곱입니다.

 

또한 round는 반올림 함수라는것을 잊지맙시다.

 

항상 기본적인 문법조차 까먹는데 앞으로가 걱정되네요.

 

본론으로 오늘의 과제

배열의 합과 평균 그리고 정렬함수 만들기의 코드입니다.

#include <iostream>


float sum(float arr[], int size) {
	float total = 0;
	for (int i = 0; i < size; i++) {
		total += arr[i];
	}
	return total;
}

float averge(float arr[], int size) {
	
	float result = sum(arr, size) / size;

	return result;

}
void sortUp(float arr[], int size) {
	for (int i = 1; i < size; i++) {
		float key = arr[i];
		int j = i - 1;
		while (j >= 0 && arr[j] > key) {
			arr[j + 1] = arr[j];
			j = j - 1;
		}
		arr[j + 1] = key;
	}
}

void sortDown(float arr[], int size) {
	for (int i = 1; i < size; i++) {
		float key = arr[i];
		int j = i - 1;
		while (j >= 0 && arr[j] < key) {
			arr[j + 1] = arr[j];
			j = j - 1;
		}
		arr[j + 1] = key;
	}
}


int main()
{
	float array[5];
	for (int i = 0; i < 5; i++) {
		std::cout << i+1<<" 번째숫자 입력 : ";
		std::cin >> array[i];
	}

	float totalSum = sum(array, 5);
	float avergeResult = averge(array, 5);
	std::cout << "배열의 합:" << totalSum << std::endl;
	std::cout << "배열의 평균: " << avergeResult << std::endl;

	sortUp(array, 5);
	std::cout << "오름차순 정렬: ";
	for (int i = 0; i < 5; i++) {
		std::cout << array[i] << " ";
	}
	std::cout << std::endl;

	sortDown(array, 5);
	std::cout << "내림차순 정렬: ";
	for (int i = 0; i < 5; i++) {
		std::cout << array[i] << " ";
	}
	std::cout << std::endl;
	

	
	return 0;
}

정렬 알고리즘은 삽입 정렬을 이용하였습니다.

728x90
반응형