Logo
IT Dienstleistungen

Romanizer V1

Einfacher Umrechner für römische Zahlen, vereinfachte Subtraktionsregel, Werte fest einkompiliert. Verschönerungen in Arbeit

roman.c

#include <stdlib.h>                                               
#include <stdio.h>                                                
 
/*zuordnung roemische/arabische ziffern festlegen*/
#define M       1000                               
#define D       500                                
#define C       100                                
#define L       50                                 
#define X       10                                 
#define V       5                                  
#define I       1                                  
 
/*anzahl zahlen*/
#define anz_zahl        5
 
/*zahlen zum uebersetzen*/
int zahl[] = {7667, 12 ,43, 24, 128 };
 
/*zaehlvariablen anlegen*/
int count_m, count_d, count_c, count_l, count_x, count_v, count_i, tmp_zahl, i;
 
/*beginn hauptfunktion*/
int main() {            
printf("\n");           
for (i=0; i<anz_zahl; i++) {
  tmp_zahl = zahl[i];       
 
/*Umrechnung durch zaehlen der vorkommnisse ohne subtraktionsregel, evtl durch array/schleife loesen*/
if (tmp_zahl >= M) {
  count_m       = tmp_zahl / M;
  tmp_zahl      = tmp_zahl - M * count_m;
  }
if (tmp_zahl >= D) {
  count_d       = tmp_zahl / D;
  tmp_zahl      = tmp_zahl - D * count_d;
  }
 
if (tmp_zahl >= C) {
  count_c       = tmp_zahl / C;
  tmp_zahl      = tmp_zahl - C * count_c;
  }                                                                                                   
 
if (tmp_zahl >= L) {
  count_l       = tmp_zahl / L;
  tmp_zahl      = tmp_zahl - L * count_l;
  }
 
if (tmp_zahl >= X) {
  count_x       = tmp_zahl / X;
  tmp_zahl      = tmp_zahl - X * count_x;
  }
 
if (tmp_zahl >= V) {
  count_v       = tmp_zahl / V;
  tmp_zahl      = tmp_zahl - V * count_v;
  }
 
if (tmp_zahl >= I) {
  count_i       = tmp_zahl / I;
  tmp_zahl      = tmp_zahl - I * count_i;
  }
 
/*Ausgabe der Zahlenpaare */
printf("Arabische Zahl: %i\n", zahl[i]);
printf("Roemische Zahl: ");
while (count_m != 0 ) {
    printf("M");
    count_m-=1;
}
while (count_d != 0 ) {
      printf("D");
      count_d-=1;
        }
while (count_c != 0 ) {
    if (count_c == 4) {
      printf("CD");
      count_c=0;
    }
    else {
      printf("C");
      count_c-=1;
    }
        }
while (count_l != 0 ) {
    printf("L");
    count_l-=1;
        }
while (count_x != 0 ) {
    if (count_x == 4) {
       printf("XL");
       count_x=0;
    }
    else {
      printf("X");
      count_x-=1;
    }
}
while (count_v != 0 ) {
    printf("V");
    count_v-=1;
        }
while (count_i != 0 ) {
    if (count_i == 4) {
       printf("IV");
       count_i=0;
    }
    else {
      printf("I");
      count_i-=1;
    }
}
printf("\n\n");
}
/*schluss*/
return 0;
}

Seiten-Werkzeuge