Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Naluem

#1
Programación C/C++ / Re: Problema con mi codigo
8 Noviembre 2014, 14:38 PM
Lo unico que me piden es que sume y reste bien , que se repita mas de 3 veces me dicen que  no lo debo de contemplar.

Gracias por la correccion del fallo .
#2
Programación C/C++ / Problema con mi codigo
8 Noviembre 2014, 13:03 PM
Buenas este año empiezo ingeniería informática y me he quedado encallado en una de mis practicas. Tengo que hacer un convertidor de números romanos a decimales solo se me permite procesar I V X L D M y el salto de linea para cualquier otro tengo que sacar mensaje de error y salir . Este es mi código, a ver si alguien me echa un cable .

#include <stdio.h>
char n;
int suma=0;
int a;
int b;
int main () {
printf("Escribe un numero en romano \n");
scanf("%c",&n);
   if (n=='I' || n=='V' || n=='X' || n=='L' || n=='C' || n=='D' || n=='M' || n=='\n'){
       while (n!='\n'){
           if (n=='I') {
                   a=1;
                   if(b<a) { suma=suma+(a-b); }
                   else { suma=suma+(a+b);}
           }
           if (n=='V') {
                   a=5;
                   if(b<a) { suma=suma+(a-b); }
                   else { suma=suma+(a+b); }
           }
           if (n=='X') {
                   a=10;
                   if(b<a) { suma=suma+(a-b); }
                   else { suma=suma+(a+b); }
           }
           if (n=='L') {
                   a=50;
                   if(b<a) { suma=suma+(a-b); }
                   else { suma=suma+(a+b); }
           }
           if (n=='C') {
                   a=100;
                   if(b<a) { suma=suma+(a-b); }
                   else { suma=suma+(a+b); }
           }
           if (n=='D') {
                   a=500;
                   if(b<a) { suma=suma+(a-b); }
                   else { suma=suma+(a+b); }
           }
           if (n=='M') {
                   a=1000;
                   if(b<a) { suma=suma+(a-b); }
                   else { suma=suma+(a+b); }
           }
           b=a;
           scanf("%n",&n);
       }

   }
   else {
       fprintf(stderr,"ERROR: El numero introducido no es correcto \n");
       return -1;
   }
printf("Este es el numero: %i",suma);
   return 0;
}





Solo se me permiten usar condicionales if, else if, else y bucles while y for. Nada de arrays . Ni break.


Cuando ejecuto me reconoce si es uno de los caracteres permitidos y saca mensaje de error si no es el esperado, pero cuando pongo uno de los esperados no hace nada.