Está en la página 1de 2

/* Realizar un procedimiento que lea una letra, compruebe que es

*una de las utilizadas para escribir los n�meros romanos


*y devuelva su valor, seg�n la siguiente tabla:
*
*I - 1 C - 100
*V - 5 D - 500
*X - 10 M - 1000
*L - 50 RESTO - 0
*
*
*Utilizando el procedimiento anterior, realizar otro procedimiento que
*lea un n�mero romano y devuelva su valor entero correspondiente. Este
*procedimiento tendr� en cuenta las reglas de escritura de los n�meros
*romanos. Finalmente, utilizando este �ltimo procedimiento realizar un
*programa que lea dos n�meros romanos e indique cu�l de ellos es mayor.*/

#include <stdio.h>
#include <math.h>

void LeerLetra (char let, int & num) {


switch (let) {
case 'I':
num = 1;
break;
case 'V':
num = 5;
break;
case 'X':
num = 10;
break;
case 'L':
num = 50;
break;
case 'C':
num = 100;
break;
case 'D':
num = 500;
break;
case 'M':
num = 1000;
break;
default:
num = 0;
}
}

void LeerNumero ( char let1, char let2, char let3, int &num, int &simbolos){
while ( simbolos != ('1'||'2'||'3')){
printf("�Numero de simbolos del numero romano?");
scanf ("%d", &simbolos);
}
if (simbolos == 1){
while (let1 != ('I'||'V'||'X'||'L'||'C'||'D'||'M')){
printf ("Primer simbolo? ");
scanf("%c", &let1);
}
LeerLetra ( let1, num);
} else if (simbolos ==2 ) {
printf ("Primer simbolo? ");
scanf("%c", &let1);
printf ("Segundo simbolo? ");
scanf("%c", &let2);
} else if (simbolos ==3 ) {
printf ("Primer simbolo? ");
scanf("%c", &let1);
printf ("Segundo simbolo? ");
scanf("%c", &let2);
printf ("Tercer simbolo? ");
scanf("%c", &let3);
}
}

int main() {
int numero, simbolos;
char letra1, letra2, letra3;
LeerNumero( letra1, letra2, letra3, numero, simbolos );
printf (" %c%c%c %d ", letra1, letra2, letra3, numero);
}

También podría gustarte