diff --git a/a5.1/safe.c b/a5.1/safe.c new file mode 100644 index 0000000..9b851e1 --- /dev/null +++ b/a5.1/safe.c @@ -0,0 +1,22 @@ +#include +#include + +int main(void) { + char passwort[32] = "GeHeIm"; + char eingabe[32]; + + printf("Bitte Passwort fuer den Hochsicherheitsbereich eingeben:\n"); + scanf("%31[^\n]", eingabe); + + for (int i = 0; i < 64; i++) { + printf("%3d (%p): %02X %c\n",i , eingabe + i, (unsigned char)eingabe[i], eingabe[i]); + } + + if (!strncmp(eingabe, passwort, strlen(passwort))) { + printf("Passwort korrekt - Willkommen im Hochsicherheitsbereich!\n"); + return 0; + } else { + printf("Passwort falsch - Zugang verweigert!\n"); + return -1; + } +} \ No newline at end of file diff --git a/a5.1/unsafe.c b/a5.1/unsafe.c new file mode 100644 index 0000000..2efb005 --- /dev/null +++ b/a5.1/unsafe.c @@ -0,0 +1,22 @@ +#include +#include + +int main(void) { + char passwort[32] = "GeHeIm"; + char eingabe[32]; + + printf("Bitte Passwort fuer den Hochsicherheitsbereich eingeben:\n"); + scanf("%[^\n]", eingabe); + + for (int i = 0; i < 64; i++) { + printf("%3d (%p): %02X %c\n",i , eingabe + i, (unsigned char)eingabe[i], eingabe[i]); + } + + if (!strncmp(eingabe, passwort, strlen(passwort))) { + printf("Passwort korrekt - Willkommen im Hochsicherheitsbereich!\n"); + return 0; + } else { + printf("Passwort falsch - Zugang verweigert!\n"); + return -1; + } +} \ No newline at end of file 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