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

Estás utilizando un programa tipo AdBlock que bloquea el servicio de "captchas" publicitarios empleado en esta web. Para poder enviar tu mensaje, desactiva AdBlock.