From 9a7805d6641186cde1c7a59611335ac1c7ce3e26 Mon Sep 17 00:00:00 2001 From: SowinskiBraeden Date: Sat, 22 Nov 2025 13:12:00 -0800 Subject: [PATCH] create assignment03 --- assignment03/project1.c | 141 ++++++++++++++++++++++++++++++++++++++++ assignment03/project1.o | Bin 0 -> 16296 bytes assignment03/project2.c | 111 +++++++++++++++++++++++++++++++ assignment03/project2.o | Bin 0 -> 16296 bytes 4 files changed, 252 insertions(+) create mode 100644 assignment03/project1.c create mode 100755 assignment03/project1.o create mode 100644 assignment03/project2.c create mode 100755 assignment03/project2.o diff --git a/assignment03/project1.c b/assignment03/project1.c new file mode 100644 index 0000000..232dcde --- /dev/null +++ b/assignment03/project1.c @@ -0,0 +1,141 @@ +#include +#include +#include + +#define NO_LEN 0 +#define MIN_SIZE 2 +#define INDEX_OFFSET 1 +#define INSERTION_SORT 1 +#define SELECTION_SORT 2 + +void insertionSort(int *arr, size_t size) +{ + if (size < MIN_SIZE) + { + return; + } + + int key; + int cmp; + + for (int i = 0; i < size - INDEX_OFFSET; i++) + { + key = i + INDEX_OFFSET; + cmp = i; + + while (arr[key] < arr[cmp]) + { + int tmp; + + tmp = arr[key]; + arr[key] = arr[cmp]; + arr[cmp] = tmp; + + key--; + cmp--; + } + } +} + +void selectionSort(int *arr, size_t size) +{ + if (size < MIN_SIZE) + { + return; + } + + for (int i = 0; i < size; i++) + { + int min; + int tmp; + + min = i; + + for (int j = i + INDEX_OFFSET; j < size; j++) + { + if (arr[j] < arr[min]) + { + min = j; + } + } + + tmp = arr[i]; + arr[i] = arr[min]; + arr[min] = tmp; + } +} + +void printArr(int *arr, size_t size) +{ + for (int i = 0; i < size; i++) + { + char *padding; + padding = i < size - INDEX_OFFSET ? ", " : "\n"; + printf("%d%s", arr[i], padding); + } +} + +int main(void) +{ + size_t arrSize; + int *arr; + + printf("Enter Number of elements: "); + scanf("%ld", &arrSize); + + arr = (int*) malloc(sizeof(int) * arrSize); + + for (int i = 0; i < arrSize; i++) + { + printf("Element %d: ", i + INDEX_OFFSET); + scanf("%d", &arr[i]); + } + + int sortAlgorithm; + int validAlgorithm; + + do + { + printf("\nChoose a sorting algorithm:\n"); + printf("Insertion Sort (1)\n"); + printf("Selection Sort (2)\n"); + + scanf("%d", &sortAlgorithm); + + validAlgorithm = sortAlgorithm == INSERTION_SORT || + sortAlgorithm == SELECTION_SORT; + + if (!validAlgorithm) + { + printf("Invalid sort algorithm\n"); + } + + } while (!validAlgorithm); + + printf("\nBefore:\n"); + printArr(arr, arrSize); + + char *algorithm; + + switch (sortAlgorithm) + { + case INSERTION_SORT: + algorithm = "insertion"; + insertionSort(arr, arrSize); + break; + + case SELECTION_SORT: + algorithm = "selection"; + selectionSort(arr, arrSize); + break; + + default: + printf("Error: bad input"); + return 1; + } + + printf("\nAfter %s sort:\n", algorithm); + printArr(arr, arrSize); + + free(arr); +} diff --git a/assignment03/project1.o b/assignment03/project1.o new file mode 100755 index 0000000000000000000000000000000000000000..b215277a8e297c967c9f614d4223bd4dc52dee5d GIT binary patch literal 16296 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 aT*Bj=%Vk}fzL&CpogQpRb3FzgR{RT +#include +#include + +#define NO_SIZE 0 +#define INTEGER 1 +#define FLOAT 2 +#define STRING 3 +#define BUFFER_SIZE 256 + +void swap(void *a, void *b, size_t size) +{ + void *tmp; + + tmp = malloc(size); + + memcpy(tmp, a, size); + memcpy(a, b, size); + memcpy(b, tmp, size); + + free(tmp); +} + +void printValue(char *message, void *data, int type) +{ + printf("%s ", message); + + switch (type) + { + case INTEGER: + printf("%d\n", *((int*) data)); + break; + + case FLOAT: + printf("%.1f\n", *((float *) data)); + break; + + case STRING: + printf("%s\n", (char *) data); + break; + } +} + +int main(void) +{ + int type; + int validType; + + do + { + printf("Choose a data type:\n"); + printf("Integer (1)\n"); + printf("Float (2)\n"); + printf("String (3)\n"); + + scanf("%d", &type); + + validType = type >= INTEGER && type <= STRING; + + if (!validType) + { + printf("Invalid Data Type\n\n"); + } + + } while (!validType); + + char *format; + size_t size; + + format = type == INTEGER ? "%d" : + type == FLOAT ? "%f" : + type == STRING ? "%255s" : + NULL; + + size = type == INTEGER ? sizeof(int) : + type == FLOAT ? sizeof(float) : + type == STRING ? sizeof(char) * BUFFER_SIZE : + 0; + + if (format == NULL || size == NO_SIZE) + { + printf("Invalid Data Type"); + return 1; + } + + void *a; + void *b; + + a = malloc(size); + b = malloc(size); + + printf("\nEnter value A: "); + scanf(format, a); + + printf("Enter value B: "); + scanf(format, b); + + printValue("\nA value before: ", a, type); + printValue("B value before: ", b, type); + + printf("\nSwapping...\n\n"); + swap(a, b, size); + + printValue("A value after: ", a, type); + printValue("B value after: ", b, type); + + free(a); + free(b); + + return 0; +} diff --git a/assignment03/project2.o b/assignment03/project2.o new file mode 100755 index 0000000000000000000000000000000000000000..33363795e3d762cb3a2a053730f0f3bc509101e5 GIT binary patch literal 16296 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