Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/06/2011, 17:00
Avatar de George1217
George1217
 
Fecha de Ingreso: junio-2009
Ubicación: Mexico
Mensajes: 164
Antigüedad: 15 años, 7 meses
Puntos: 8
Pregunta Problema agregando codigo para repetir programa

Hola q tal! lo que pasa es q tengo el siguiente codigo de un programa que convierte numeros arabigos a numeros romanos

Código C++:
Ver original
  1. #include<stdio.h>
  2. #include<conio.h>
  3.  
  4.  
  5. main()
  6. {
  7. int arabigo;      //Entero de la variable del numero arabigo
  8. void romanos(int);
  9.     do    {
  10.        printf("Inserte un numero mayor a 0: "); //El usuario insera un numero
  11.        scanf("%d",&arabigo); //Se guarda el numero en la variable correspondiete
  12.        
  13.        if(arabigo<1){ //pequeña condicion... en caso de introducir un numero menor a 1
  14.        printf("Que haces?! el numero debe d ser mayor a 0\n");
  15.        }else{
  16.        //los numeros romanos mayores a 4000 llevan una raya horizontal arriba por tal razon solo
  17.        //se tomaran numeros menores a 4000, para poder mostrarlos en pantalla correctamente      
  18.        if(arabigo<4000){
  19.          romanos(arabigo);
  20.        }
  21.     }
  22. }
  23. //mientras el numero arabigo (normal) sea menor a 1 se seguira pidiendo
  24. //al usuario que inserte un numero mayor a 0
  25.     while(arabigo<1);{                  
  26.     getchar();
  27.     getchar();
  28.     return 0;
  29. }
  30. }
  31.  
  32.  
  33.  
  34. void romanos(int arabigo){
  35.      
  36. //Mientras el numero arabigo (normal) sea mayor o igual a 1000
  37. //Se imprimira en pantalla su equivalente en romano
  38.    while(arabigo>=1000){
  39.                   arabigo-=1000;
  40.                   printf("M");
  41.                   }
  42.    while(arabigo>=900){
  43.                  arabigo-=900;
  44.                  printf("CM");
  45.                  }
  46.    while(arabigo>=500){
  47.                  arabigo-=500;printf("D");
  48.                  }
  49.    while(arabigo>=400){
  50.                  arabigo-=400;
  51.                  printf("CD");
  52.                  }
  53.    while(arabigo>=100){
  54.                  arabigo-=100;
  55.                  printf("C");
  56.                  }
  57.    while(arabigo>=90){
  58.                 arabigo-=90;
  59.                 printf("XC");
  60.                 }
  61.    while(arabigo>=50){
  62.                 arabigo-=50;
  63.                 printf("L");
  64.                 }
  65.    while(arabigo>=40){
  66.                 arabigo-=40;
  67.                 printf("XL");
  68.                 }
  69.    while(arabigo>=10){
  70.                 arabigo-=10;
  71.                 printf("X");
  72.                 }
  73.    while(arabigo>=9){
  74.                arabigo-=9;
  75.                printf("IX");
  76.                }
  77.    while(arabigo>=5){
  78.                arabigo-=5;
  79.                printf("V");
  80.                }
  81.    while(arabigo>=4){
  82.                arabigo-=4;
  83.                printf("IV");
  84.                }
  85.    while(arabigo>=1){
  86.                arabigo-=1;
  87.                printf("I");
  88.                }
  89. }

El problema que tengo es que necesito agregar lo siguiente para poder "repetir el programa" en caso de que el usuario necesite convertir otro numero, pero he intentado varias veces y me da errores al compilarlo

Código C++:
Ver original
  1. char respuesta[1];
  2.  
  3.  
  4. printf("Desea repetir la operacion [S/N]: ");
  5. scanf("%s",&respuesta);
  6. }while(respuesta!='N'&&respuesta!='n');
  7. return 0;
  8. }

Alguien me podria ayudar diciendome en que parte del programa debo de poner el codigo para que se repita ? desde ya, muchas gracias!
__________________
Yo Ho! Yo Ho!