49 lines
1.1 KiB
C
49 lines
1.1 KiB
C
#include <stdio.h>
|
|
|
|
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;
|
|
}
|