Info2P5/28.4.3_romzahl.c
2025-05-26 13:01:51 +02:00

82 lines
1007 B
C

#include <stdio.h>
// Struktur zur Abbildung von arabisch → römisch
typedef struct {
int wert;
const char *zeichen;
} Roemisch;
// Tabelle in absteigender Reihenfolge
Roemisch roemischTabelle[] = {
{1000, "M"},
{900, "CM"},
{500, "D"},
{400, "CD"},
{100, "C"},
{90, "XC"},
{50, "L"},
{40, "XL"},
{10, "X"},
{9, "IX"},
{5, "V"},
{4, "IV"},
{1, "I"}
};
// Hauptfunktion
int main() {
int zahl;
printf("Zu wandelnde Zahl: ");
scanf("%d", &zahl);
if (zahl <= 0 || zahl > 3999) {
printf("Nur Zahlen zwischen 1 und 3999 erlaubt!\n");
return 1;
}
printf("... %d = ", zahl);
for (int i = 0; i < sizeof(roemischTabelle) / sizeof(Roemisch); i++) {
while (zahl >= roemischTabelle[i].wert) {
printf("%s", roemischTabelle[i].zeichen);
zahl -= roemischTabelle[i].wert;
}
}
printf("\n");
return 0;
}