#include typedef union { int ganzzahl; float gleitkommazahl; } number_t; typedef enum { GANZZAHL, GLEITKOMMAZAHL } number_type; void print_number(number_t zahl, number_type typ) { switch (typ) { case GANZZAHL: printf("Ganzzahl: %d\n", zahl.ganzzahl); break; case GLEITKOMMAZAHL: printf("Gleitkommazahl: %.2f\n", zahl.gleitkommazahl); break; default: printf("Ungültiger Typ\n"); break; } } int main() { number_t zahl; number_type typ; printf("Wählen Sie den number_type (0 für Ganzzahl, 1 für Gleitkommazahl): "); scanf("%d", (int*)&typ); // Eingabe als int, dann Umwandlung in enum number_type if (typ == GANZZAHL) { printf("Geben Sie eine Ganzzahl ein: "); scanf("%d", &zahl.ganzzahl); } else if (typ == GLEITKOMMAZAHL) { printf("Geben Sie eine Gleitkommazahl ein: "); scanf("%f", &zahl.gleitkommazahl); } else { printf("Ungültiger Typ\n"); return 0; } print_number(zahl, typ); return 0; }