//Charlotte Davies-Kiernan CS1A Chapter 9 P. 539 #10
//
/******************************************************************************
*
* Reverse an Array
* ____________________________________________________________________________
* This program will accept an array's size and the integers that make it up
* and then reverse the contents of the array. Both arrays will be displayed
* after!
* ____________________________________________________________________________
* Input
* size :amount of elements in the arrays
* original :array made up of contents enetred by user
* Output
* reverse :reverse of the array the user had originally entered
*****************************************************************************/
#include <iostream>
#include <iomanip>
using namespace std;
//Function Prototype
int* reverseArray(const int* arr, int size);
int main() {
//Data Dictionary
int size;
int* original;
int* reversed;
//User Input
cout << "Enter the size of the array: " << endl;
cin >> size;
//Input Validation
while(size <= 0) {
cout << "Size must be positive. Re-enter: " << endl;
cin >> size;
}
original = new int[size];
for(int i = 0; i < size; i++) {
cout << "Enter element #" << (i + 1) << ": " << endl;
cin >> *(original + i);
}
reversed = reverseArray(original, size);
//Display Original Array
cout << "Original Array: " ;
for(int i = 0; i < size; i++){
cout << *(original + i) << " ";
}
cout << endl;
//Display Reversed Array
cout << "Reversed Array: ";
for(int i = 0; i < size; i++){
cout << *(reversed + i) << " ";
}
cout << endl;
//Free Memory
delete[] original;
delete[] reversed;
return 0;
}
//Function Definition
int* reverseArray(const int* arr, int size){
int* rev = new int[size];
for(int i = 0; i < size; i++){
*(rev + i) = *(arr + ( size - 1 - i));
}
return rev;
}