Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: perico1995 en 19 Diciembre 2017, 17:54 pm



Título: Conversor de números arábigos a números romanos
Publicado por: perico1995 en 19 Diciembre 2017, 17:54 pm
Estoy aprendiendo a programar en c y me he puesto con el conversor de numeros a romanos y me gustaria saber si está más o menos correcto:

#include <stdio.h>
#include <stdlib.h>

int main() {
   
int n,i, resto1,resto2, resto3, resto4, resto5, resto6;

printf("Introduce un numero: ");
scanf("%i",&n);   
   
   resto1 = n%1000;
   resto2 = resto1%500;
   resto3 = resto2%100;
   resto4 = resto3%50;
   resto5 = resto4%10;
   resto6 = resto5%5;
   
if(n/1000>=0)
 {for(i=0;i<n/1000;i++)
  printf("M");}
   
if(resto1>=500 && resto1<900)
  printf("D");
   else if(resto1>=900 && resto1<1000)
     printf("CM");
   else if(resto2>=400 && resto2<500)
      printf("CD");
   
if(resto2>=100 && resto2<400)
 {for(i=0; i<resto2/100; i++)
  printf("C");}   
   
if(resto3>=50 && resto3<90)
  printf("L");   
   else if(resto3>=90 && resto3<100)
      printf("XC");
   else if(resto4>=40 && resto4<50)
      printf("XL");
   
   
if(resto4>=10 && resto4 <40)
 {for(i=0; i< resto4/10; i++)
  printf("X");}   

if(resto5>=5 && resto5<9)
  printf("V");
   else if(resto5>=9 && resto5<10)
      printf("IX");
   
   else if(resto6>=4 && resto6<5)
      printf("IV");
   
if(resto6>=1 && resto6<4)
 {for(i=0; i< resto6/1; i++)
  printf("I");}
   
    printf("\n\n");
   
   main();
   return 0;
   system("pause");
   }