1. 문제

 

3. 배열의 원소를 반대 순서로 뒤집는 reverseArray() 함수를 템플릿으로 작성하라. reverseArray()의 첫 번째 매개 변수는 배열에 대한 포인터이며 두 번째 매개 변수는 배열의 개수이다. reverseArray()의 호출 사례는 다음과 같다.

 

2. 결과

 

 

 

3. 코드

#include <iostream>
using namespace std;

template <class T>
void reverseArray(T a[], int size) {
	T imsi;
	for (int i = 0; i<size / 2; i++) {
		imsi = a[i];
		a[i] = a[size - i - 1];
		a[size - i - 1] = imsi;
	}
}

int main() {
	int x[] = { 1, 10, 100, 5, 4 };

	reverseArray(x, 5);
	for (int i = 0; i<5; i++) cout << x[i] << ' ';
}

 

4. 설명

 

 

원소의 순서를 뒤집는 reverseArray 함수입니다.

 

원소의 개수 size가 짝수일 경우 0~size/2까지 즉 size/2번 for문을 실행하여서 원소의 순서를 뒤집어주고,

 

size가 홀수일 경우는 가운데의 값의 순서는 그대로이므로 (size/2)-0.5번 만큼만 for문을 실행하여주면 순서가 뒤집어집니다.

 

+ Recent posts