From e0d044e719dd1406b8eee36b3b60d63ea93d3923 Mon Sep 17 00:00:00 2001 From: my name Date: Fri, 29 May 2026 22:25:31 +0200 Subject: [PATCH] start of stringsort, just basic array for now. --- .../digitseen.c | 7 ++- qscr/c/stringsort.c | 63 +++++++++++++++++++ 2 files changed, 67 insertions(+), 3 deletions(-) create mode 100644 qscr/c/stringsort.c diff --git a/med/C-programming-a-modern-standard/digitseen.c b/med/C-programming-a-modern-standard/digitseen.c index 478aa5d..7518c6e 100644 --- a/med/C-programming-a-modern-standard/digitseen.c +++ b/med/C-programming-a-modern-standard/digitseen.c @@ -1,4 +1,5 @@ #include +#include #include #include @@ -10,7 +11,7 @@ void numberprinter(int inarr[], int arrlength) { struct Darray { int *digits; - int length; + size_t length; // blijkbaar correcte eenheid voor length, malloc stuff ofzo (instead of hardcoding it) }; struct Darray *numbertodigitDarr(int input) { @@ -25,7 +26,7 @@ struct Darray *numbertodigitDarr(int input) { // allocate memory for struct and array, apparently more ideomatic to have a single malloc struct Darray *DigDarr = - malloc(op * sizeof(int) + sizeof(*DigDarr) + sizeof(int)); + malloc(op * sizeof(int) + sizeof(*DigDarr) + sizeof(int)); if (DigDarr == NULL) { printf("allocation failed"); exit(0); @@ -90,4 +91,4 @@ iterator (which has to start from 0, because we don't know the size of the number?) then our number will be the wrong way around. malloc, blijkbaar very different -*/ + */ diff --git a/qscr/c/stringsort.c b/qscr/c/stringsort.c new file mode 100644 index 0000000..7d812f8 --- /dev/null +++ b/qscr/c/stringsort.c @@ -0,0 +1,63 @@ +/* + +idee, een programma dat een lijst van strings krijgt, en ze dan sorteert op +alphabetische volgorde, idealiter ook met hele nummbers if relevant (dus niet +alleen individuele digits) + +split into strings and numbers + + + +*/ + +#include +#include +#include +#include +struct chickendynarr { + int *arr; + size_t length; +}; + +struct chickendynarr *createarr(int size) { + + struct chickendynarr *myarr = malloc(sizeof(int) * size); + myarr->length = size; + myarr->arr = (int *)(myarr + 1); + + for (int i = 0; i < size - 1; i++) { + int randnumb = rand() % 20; + myarr->arr[i] = randnumb; + printf("num%d:%d\n", i, randnumb); + } + + return myarr; +} + +/* eerst gewone bubblesort weer doen */ +int mybubblesort(struct chickendynarr *inputarr) { + for (int i = 0; i < inputarr->length - 1; i++) { // voor elk nummer + for (int j = 0; j < inputarr->length - 1; j++) { // ga langs elk nummer + if (inputarr->arr[j] > + inputarr->arr[j + 1]) { // als huidig nummer groter is + // swap hem dan + int temp = inputarr->arr[j]; + inputarr->arr[j] = inputarr->arr[j + 1]; + inputarr->arr[j + 1] = temp; + } + } + } + + for (int i = 0; i < inputarr->length - 1; i++) { + printf("num:%d, %d\n", i, inputarr->arr[i]); + } + + return 0; +} + +int main() { + srand(time(NULL)); + struct chickendynarr *myarr = createarr(5); + mybubblesort(myarr); + return 0; +}