Números romanos a decimal

  • Nombre del archivo: Romano a decimal
  • Tamaño: 689 b
yes /

Descargar

Programa que convierte un número romano por ejemplo "XVVVVIII" a decimal "33" mediante una función con una cadena de caracteres con el número romano.

 

Suponemos que se pueden poner 4 caracteres iguales en vez de restar, es decir, se hará IIII en vez de IV. De esta forma, se trata de sumar valores dependiendo de qué caracter se trate.



#include <stdio.h>
#include <string.h>

int rom2dec(char s[]){
    int i,r=0,valor;

    for(i=0;i<strlen(s);i++){
        switch(s[i]){
            case 'I':valor=1;break;
            case 'V':valor=5;break;
            case 'X':valor=10;break;
            case 'L':valor=50;break;
            case 'C':valor=100;break;
            case 'D':valor=500;break;
            case 'M':valor=1000;break;
            default: break;
        }
        r+=valor;
    }
    return r;
}

int main(){
    char cad[20];
    int decimal;

    printf("Escribe un número romano\n:");
    scanf("%s",cad);
    decimal=rom2dec(cad);
    printf("El valor decimal de %s es %d",cad,decimal);

    return 0;
}

 

Más ejercicios en https://www.youtube.com/channel/UCK05KbyByXPCMRJEqyL4VXw/videos

No hay puntuaciones ¡sé el primero añadir una!

Añadir un comentario