#include <stdio.h>

// 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;
}