Aufgabe 1 – Einfaches enum verwenden

Definiere ein enum für die Wochentage (MONDAY bis FRIDAY).
Schreibe ein Programm, das:

  • eine Variable dieses Typs anlegt,
  • einen Wochentag zuweist,
  • den numerischen Wert des Enums ausgibt.
Musterlösung: Einfaches enum verwenden
#include <stdio.h>

enum Day {
    MONDAY,
    TUESDAY,
    WEDNESDAY,
    THURSDAY,
    FRIDAY
};

int main() {
    enum Day today = WEDNESDAY;
    printf("Numerischer Wert: %d\n", today);
    return 0;
}

Aufgabe 2 – enum und switch

Erstelle ein enum für den Status eines Programms (START, RUNNING, STOPPED).
Gib mithilfe einer switch-Anweisung eine passende Textausgabe aus.

Musterlösung: enum und switch
#include <stdio.h>

enum Status {
    START,
    RUNNING,
    STOPPED
};

int main() {
    enum Status s = RUNNING;

    switch (s) {
        case START:
            printf("Programm startet\n");
            break;
        case RUNNING:
            printf("Programm läuft\n");
            break;
        case STOPPED:
            printf("Programm ist gestoppt\n");
            break;
    }

    return 0;
}

Aufgabe 3 – enum als Funktionsparameter

Definiere ein enum für Richtungen (LEFT, RIGHT, UP, DOWN).
Schreibe eine Funktion, die abhängig von der Richtung eine Textausgabe erzeugt.

Musterlösung: enum als Funktionsparameter
#include <stdio.h>

enum Direction {
    LEFT,
    RIGHT,
    UP,
    DOWN
};

void move(enum Direction d) {
    if (d == LEFT)
        printf("Bewege nach links\n");
    else if (d == RIGHT)
        printf("Bewege nach rechts\n");
    else if (d == UP)
        printf("Bewege nach oben\n");
    else if (d == DOWN)
        printf("Bewege nach unten\n");
}

int main() {
    move(UP);
    move(LEFT);
    return 0;
}

Aufgabe 4 – enum in struct

Erstelle ein struct Person, das:

  • einen Namen speichert,
  • ein enum für den Beziehungsstatus enthält (SINGLE, MARRIED, DIVORCED).

Schreibe eine Funktion, die den Status menschenlesbar ausgibt.

Musterlösung: enum in struct
#include <stdio.h>

enum Status {
    SINGLE,
    MARRIED,
    DIVORCED
};

struct Person {
    char name[20];
    enum Status status;
};

void printPerson(struct Person p) {
    printf("%s ist ", p.name);
    switch (p.status) {
        case SINGLE:   printf("ledig\n"); break;
        case MARRIED:  printf("verheiratet\n"); break;
        case DIVORCED: printf("geschieden\n"); break;
    }
}

int main() {
    struct Person p = { "Alex", MARRIED };
    printPerson(p);
    return 0;
}

Aufgabe 5 – typedef enum + Validierung

Definiere mit typedef enum einen Typ Priority (LOW, MEDIUM, HIGH).
Schreibe ein Programm, das:

  • eine Variable dieses Typs verwendet,
  • prüft, ob der Wert gültig ist,
  • abhängig von der Priorität unterschiedlich reagiert.
Musterlösung: typedef enum + Validierung
#include <stdio.h>

typedef enum {
    LOW,
    MEDIUM,
    HIGH
} Priority;

int main() {
    Priority p = HIGH;

    if (p < LOW || p > HIGH) {
        printf("Ungültige Priorität\n");
        return 1;
    }

    if (p == LOW)
        printf("Niedrige Priorität\n");
    else if (p == MEDIUM)
        printf("Mittlere Priorität\n");
    else
        printf("Hohe Priorität\n");

    return 0;
}
Nach oben scrollen