#include // Struktur für eine römische Ziffer und ihren Wert typedef struct { int wert; // Der Wert der Ziffer (z.B. 1) const char *roemisch; // Das römische Zeichen (z.B. "I") } RoemZahl; int main() { // Tabelle der römischen Ziffern, aufsteigend sortiert (klein nach groß) RoemZahl ziffern[] = { {1, "I"}, {4, "IV"}, {5, "V"}, {9, "IX"}, {10, "X"}, {40, "XL"}, {50, "L"}, {90, "XC"}, {100, "C"}, {400, "CD"}, {500, "D"}, {900, "CM"}, {1000, "M"} }; const int n = sizeof(ziffern) / sizeof(ziffern[0]); int zahl; // Zahl vom Benutzer einlesen printf("Zu wandelnde Zahl: "); scanf("%d", &zahl); printf("... %d = ", zahl); // Über die Ziffern von groß nach klein iterieren (von hinten nach vorne) for (int i = n - 1; i >= 0; i--) { // So oft wie möglich die aktuelle Ziffer abziehen und ausgeben for (int j = 0; j < zahl / ziffern[i].wert; j++) { printf("%s", ziffern[i].roemisch); } zahl %= ziffern[i].wert; } printf("\n"); return 0; }