Pages

lunes, 21 de enero de 2013

Convertir a números romanos entre 1 y 999 Codigo Fuente en C

Problema
Determinar un algoritmo que permita convertir un número arábigo  comprendido entre  1 y 999 a números romanos

Solución

  • Entrada: 697
  • Salida:  DCXCVII
Codigo Fuente en C
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int N;
    const char *Unidad[]={"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"};
    const char *Decena[]={"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"};
    const char *Centena[]= {"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"};
    printf("Ingrese un numero entre 1-999: \n");
    scanf("%d",&N);
    int u=N%10;
    int d=(N/10)%10;
    int c=N/100;
      if(N>=100){
          printf("%s%s%s",Centena[c],Decena[d],Unidad[u]);
      }else{
          if(N>=10){
              printf("%s%s",Decena[d],Unidad[u]);
          }else{
              printf("%s",Unidad[N]);
          }
      }
    return 0;
}

6 comentarios:

Anónimo dijo...

Super bien me ayudo demaciado

Unknown dijo...

y se le quiero agregar undades de mil

Unknown dijo...

y se le quiero agregar undades de mil

Anónimo dijo...

:v

Anonimo dijo...

No debería en el ultimo else Unidad[u] en vez de Unidad[N]

prueba dijo...

Lo mismo ps sonso

Publicar un comentario