//CLab - LAB101 Assignment C.S.P0044 #include #include #include #define MAX_VAL 1000 #define MIN_VAL -1000 int getInt(int min, int max); int mainMenu(); int addValue(int arr[], int); void search(int arr[], int, int); void displayArray(int arr[], int); void print_ValueInARange(int arr[], int); void sortAscending(int arr[], int); int main(){ int arr[100]; int size = 0; int isContinue = 1; int value; do { int choice = mainMenu(); switch(choice) { case 1: printf("\n1- Add a value\n"); size = addValue(arr, size); break; case 2: printf("\n2- Search a value\n"); printf("Enter a value: "); value = getInt(MIN_VAL, MAX_VAL); search(arr, size, value); break; case 3: printf("\n3- Print out the array \n"); displayArray(arr, size); break; case 4: printf("\n4- Print out values in a range of inputted min and max values, inclusively.\n"); print_ValueInARange(arr, size); break; case 5: printf("\n5- Sort the array in ascending order \n"); sortAscending(arr, size); break; default : printf("\nOther- Quit.\nGoodbye !!!"); isContinue = 0; } } while (isContinue == 1); return 0; } int getInt(int min, int max){ int value; char check;//42a do{ int rc = scanf("%d%c", &value, &check); fpruge(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 mainMenu(){ printf("\n===========MENU=============\n"); printf("1- Add a value\n"); printf("2- Search a value\n"); printf("3- Print out the array \n"); printf("4- Print out values in a range of inputted min and max values, inclusively.\n"); printf("5- Sort the array in ascending order \n"); printf("Other- Quit.\n"); printf("Enter your choice: "); int choice = getInt(1, 6); return choice; } int addValue(int arr[], int size){ if (size >= 100) { printf("The array is full !\n"); return size; } else { printf("Input an Integer a[%d] : ", size); arr[size] = getInt(MIN_VAL, MAX_VAL); return ++size; } } void search(int arr[], int size, int value){ int index = -1; for (int i = 0; i < size; i++){ if (arr[i] == value){ printf("Index arr[%d]: %d\n", i, arr[i]); index = i; } } if (index == -1){ printf("Can not find a value %d in the array !", value); } } void displayArray(int arr[], int size){ for(int i = 0; i < size; i++){ printf("a[%d] = %d\n", i, arr[i]); } } void print_ValueInARange(int arr[], int size){ printf("Input Min value & Max Value of Range: \n"); printf("Min value of Range: "); int minRange = getInt(MIN_VAL, MAX_VAL); printf("Max value of Range: "); int maxRange = getInt(minRange, MAX_VAL); for(int i = 0; i < size; i++){ if(arr[i] >= minRange && arr[i] <= maxRange){ printf("arr[%d] = %d\n", i, arr[i]); } } } void sortAscending(int arr[], int size){ int temp; for (int i = 0; i < size - 1; i++){ for (int j = i + 1; j < size; j++){ if (arr[i] > arr[j]){ temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } }