From e0f2a676662ee96ec0eb35ac06d69096aae6ea21 Mon Sep 17 00:00:00 2001 From: Luca Giuliano Conte Date: Wed, 15 Nov 2023 12:29:18 +0100 Subject: [PATCH] a5.2 --- a5.2/angestellte.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 a5.2/angestellte.c diff --git a/a5.2/angestellte.c b/a5.2/angestellte.c new file mode 100644 index 0000000..80d9abc --- /dev/null +++ b/a5.2/angestellte.c @@ -0,0 +1,52 @@ +#include +#include + +#define NUM_ANGESTELLTE 10 + +#define NAME_LEN 40 +typedef struct { + char name[NAME_LEN+1]; + int personalnummer; + float gehalt; +} angestellter; + +int main(void) { + int anzahl; + + angestellter *array[NUM_ANGESTELLTE]; + + for (int i = 0; i < NUM_ANGESTELLTE; i++) { + array[i] = NULL; + } + + int input = 0; + while (1) { + scanf("%d", &input); + if (input >= NUM_ANGESTELLTE || input < 0) break; + + if (array[input] == NULL) { + array[input] = (angestellter*)malloc(sizeof(angestellter)); + printf("Name: "); + scanf("%s", array[input]->name); + + printf("Personalnummer: "); + scanf("%d", &array[input]->personalnummer); + + printf("Gehalt: "); + scanf("%f", &array[input]->gehalt); + } else { + free(array[input]); + array[input] = NULL; + } + printf("\n############\nAngestellte:\n------------\n"); + for (int i = 0; i < NUM_ANGESTELLTE; i++) { + if (array[i] == NULL) { + printf("%d: ---\n", i); + } else { + printf("%d: %s | %d | %f\n", i, array[i]->name, array[i]->personalnummer, array[i]->gehalt); + } + } + } + + return 0; +} \ No newline at end of file