Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: alan95aag en 12 Marzo 2015, 06:27 am



Título: problemas con el else
Publicado por: alan95aag en 12 Marzo 2015, 06:27 am
queria preguntar que se hace en caso de que al compilar un programa, marque error en el ese; Me dice que tengo un else que no tiene if pero todos los else tienen su if ayuda por fa :-(


Título: Re: problemas con el else
Publicado por: NOIS en 12 Marzo 2015, 07:09 am
Pon el código, sino será difícil adivinar el error.


Título: Re: problemas con el else
Publicado por: eferion en 12 Marzo 2015, 08:38 am
Código
  1. if( x == y )
  2.  x = 5;
  3.  y = 10;
  4. else
  5.  x = 0;

El código anterior reproduce el error que tu comentas. ¿Motivo? El if, al no tener llaves, únicamente afecta a la primera instrucción "x=5". La segunda instrucción, "y=10" queda fuera del if y, claro, el "else" ya no tiene un if al que emparejarse.


Título: Re: problemas con el else
Publicado por: alan95aag en 12 Marzo 2015, 22:56 pm
   if (f(pn)==0);
   {
   p=pn;
   cout<<"el valor de la raiz es"<<p;
   cout<<"La grafica cruza por"<<p<<endl;
       
   system("pause");
      
   }
   else;
   {
   if(f(pn)*f(an)>0);
   {
   an==pn;
   bn==bn;
       }
   else
   }   
        an==an;
   bn==pn;
   }
   
ese es el codigo


Título: Re: problemas con el else
Publicado por: rir3760 en 13 Marzo 2015, 03:00 am
ese es el codigo
Cuando publiques código fuente por favor utiliza las etiquetas de código. Estas se agregan mediante el cuadro desplegable con el texto "GeSHi" en la pagina de composición de mensajes, solo tienes que seleccionar ahí el lenguaje (C, C++, etc.).

El código fuente es:
Código
  1. if (f(pn)==0) ; /* <== */ {
  2.   p=pn;
  3.   cout<<"el valor de la raiz es"<<p;
  4.   cout<<"La grafica cruza por"<<p<<endl;
  5.  
  6.   system("pause");
  7. }else ; /* <== */ { /* <== */
  8.   if(f(pn)*f(an)>0) ; /* <== */ {
  9.      an==pn;
  10.      bn==bn;
  11.   }else } /* <== */
  12.      an==an;
  13.      bn==pn;
  14.   }
Los errores se generan porque tienes puntos y comas demás asi como llaves de mas/menos  y utilizas el operador de comparación "==" cuando debería ser el de asignación "=".

Un saludo


Título: Re: problemas con el else
Publicado por: NOIS en 13 Marzo 2015, 16:24 pm
No se donde habrás visto que se ponga ";" tras comparaciones, pero, al menos en C/C++, ";" se usa solo para finalizar una acción, ya sea una operación o la llamada a una función, nunca tras comparaciones o inicios de un conjunto de instrucciones, como if, else, while, for, etc.