#include #include #define MIN_VALUE -10000 #define MAX_VALUE 10000 int getInt(int, int); int inputArray(int *arr); int addValue(int *arr, int); void sortArray(int *arr, int, int); void displayArray(int *arr, int); int main() { int arr[100]; int size = inputArray(arr); //sort ascending & display the origin Array sortArray(arr, size,1); printf("The array after sorting:\n"); displayArray(arr, size); //add a new element + Sort ascending & display the new array size = addValue(arr, size); sortArray(arr, size, 1); printf("New array: \n"); displayArray(arr, size); } int getInt(int min, int max){ int value; char check;//42a do{ int rc = scanf("%d%c", &value, &check); fpurge(stdin); if (rc != 2 || check != '\n') printf("Invalid value!!!\n"); else if (value < min || value > max) printf("Value out of range !\n"); else {// rc == 2 && check == '\n' return value; // break out function } }while(1); } int inputArray(int *arr) { printf("Please enter size of array: "); int size = getInt(0, 100); for(int i = 0; i < size; i++) { printf("Enter element[%d]: ", i); arr[i] = getInt(MIN_VALUE, MAX_VALUE); } return size; } int addValue(int *arr, int size) { printf("Please enter new value: "); arr[++size - 1] = getInt(MIN_VALUE, MAX_VALUE); return size; } void sortArray(int*arr, int size, int direct) { int temp; for (int i = 0; i < size - 1; i++){ for (int j = i + 1; j < size; j++){ if (arr[i]*direct > arr[j]*direct){ temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } } void displayArray(int *arr, int size) { for(int i = 0; i < size; i++) { printf("%d\t", arr[i]); } printf("\n"); }