problemas con el else

Iniciado por alan95aag, 12 Marzo 2015, 06:27 AM

0 Miembros y 2 Visitantes están viendo este tema.

alan95aag

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 :-(

NOIS

Pon el código, sino será difícil adivinar el error.
NOIS dev7

eferion


if( x == y )
  x = 5;
  y = 10;
else
  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.

alan95aag

   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

rir3760

Cita de: alan95aag en 12 Marzo 2015, 22:56 PMese 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 (cpp) [Seleccionar]
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;
   }

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
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

NOIS

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.
NOIS dev7