I'm working on an example problem and its asking me to check of a user inputted array is symmetric. I've figured out how to do it by creating another array, copying over the first array in reverse order then checking to see if they are equal to each other. As seen in the following code.
#include <stdio.h>
int main(void){
#define NUM_ELEMENTS 12
int userArray[NUM_ELEMENTS];
int userArray2[NUM_ELEMENTS];
int i;
int tempVal = 0;
double sumArray = 0;
double aveArray = 0;
printf("Enter 12 interger numbers (each one separated by a space):\n");
for(i = 0; i < NUM_ELEMENTS; i++){
scanf_s("%d", &userArray[i]);
}
for(i = 0; i < NUM_ELEMENTS; i++){
sumArray = sumArray + userArray[i];
}
aveArray = sumArray/NUM_ELEMENTS;
printf("\nAverage of all data points is %.2lf \n",aveArray);
printf("\nAn array in reverse order:\n");
for(i = NUM_ELEMENTS - 1; i >= 0; i--){
printf("%d ",userArray[i]);
}
printf("\n");
//Used swap values in the array
for(i = 0; i < (NUM_ELEMENTS / 2); i++){
tempVal = userArray[i];
userArray2[i] = userArray[NUM_ELEMENTS - 1- i];
userArray2[NUM_ELEMENTS - 1 - i] = tempVal;
}
if(userArray[i] == userArray2[i])
printf("\nThis array is symmetric\n");
else
printf("\nThis array is NOT symmetric\n");
return 0;
}
So if a user entered 1 2 3 4 5 6 6 5 4 3 2 1 the program return back that the array is symmetric.
I'm just curious if there is a simpler way to do this?