elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ¿a que se debe este error en el codigo?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿a que se debe este error en el codigo?  (Leído 4,755 veces)
spiderboot

Desconectado Desconectado

Mensajes: 12


Ver Perfil
¿a que se debe este error en el codigo?
« en: 5 Febrero 2014, 19:58 pm »

no entiendo porque me marca error en esa linea, soy princiante, aca el codigo, gracias de antemano por su ayuda, la marca en rojo es donde me marca error
y esto son los mensajes que me saca:

in function "int main ()":
expected "before if"
expected primary -expresion before else
expected before - else
expected before system


/* Descripción: Solución de ecuaciones de segundo grado utilizando*/
/*Bibliotecas */
#include <cstdlib>
#include <iostream>
#include <math.h> /* biblioteca con funciones matematicas, pow y sqrt*/


main ( )
{
double a, b, c, x1, x2, det; /*declaracion de variables de punto flotante doble precision, decimales */
printf("El siguiente programa calcula las raices de un polinomio de segundo grado\n");
printf("\n\t\t ax^2 + bx + c = 0"); /* n= salto de linea, t=tabulado, */

/*datos de entrada */
printf ("\nIntroduzca los coeficientes de a,b y c:");
scanf("%1f, %1f, %1f", &a, &b, &c); /*1f= insertar un valor de tipo double, o sea decimales */
/*la variable det toma el resultado de la raiz cuadrada de la variable b menos */
/* la multiplicacion de 4 por las variables a y c, este resultado sirve para*/
/* comprobar que se cumpla la condicion que sigue*/
det = pow (b,2)-4*a*c

if (det > = 0)
    {
    x1=(-b + sqrt(det))/2*a; /*se calculan los valores para x1*/
    x2=(-b - sqrt (det))/2*a;
    printf ("\n La raices son: %.2lf, %.2lf",x1, x2);/* ¿porque 21f, que significa el2?*/           
    }
    else
    printf("\n No existe raices reales.");
    printf ("\n")
 
    system("PAUSE");
    return EXIT_SUCCESS;
}


En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: ¿a que se debe este error en el codigo?
« Respuesta #1 en: 5 Febrero 2014, 20:50 pm »

Te falta la librería <cstdio> para el uso de printf, así como puntos y coma en:

Citar
det = pow (b,2)-4*a*c;
....................................

else
    printf("\n No existe raices reales.");
    printf ("\n");

.......................................


Puedes ahorrarte el uso de pow con:

Código
  1. det = b*b-4*a*c;
  2.  

Y para cuando postees el código elige las etiquetas GeSHi y toma la C++ y en medio de las etiquetas Code que aparecen "pegas" tu código. Al no hacerlo de esta manera parte del código no sale correcta, especialmente las matrices.

¡¡¡¡ Saluditos! ..... !!!!



P.D:

* La función main es de tipo int:

Código
  1. ...........................
  2. int main (){
  3.  .....................
  4.  return EXIT_SUCCESS;
  5. }
  6.  

*Y scanf es:[/size]

Código
  1. scanf("%lf %lf %lf", &a, &b, &c);
  2.  

sin comas en medio.

 Lo del Número en los printf es para sacar una determinada cantidad de decimales. Mejor es:


Código
  1. printf ("\n La raices son: %g, %g",x1, x2);
  2.  


« Última modificación: 6 Febrero 2014, 19:44 pm por leosansan » En línea

Yoel Alejandro

Desconectado Desconectado

Mensajes: 254



Ver Perfil WWW
Re: ¿a que se debe este error en el codigo?
« Respuesta #2 en: 6 Febrero 2014, 00:22 am »

Si revisas atentamente el mensaje dado por el compilador verás que dice algo "before if", o sea antes del "if". Y yo creo que a la línea:
Código:
det = pow (b,2)-4*a*c
que va justo antes del if le falta el punto y coma final.

Por otra parte, recuerda que como dijeron antes el tipo por defecto de main en int. No es apropiado declarar main() sin tipo de retorno, debes poner int main().

Y finalmente, no uses system("PAUSE"), de hecho, procura nunca usar system. Rrecuerda que la orden system invoca una llamada al sistema operativo, y como el SO puede cambiar de una máquina a otra, tu programa no será portable. Prefiere siempre el uso de funciones estándares de C, como lo es getchar() que realiza la misma función de esperar que el usuario pulse una tecla, y sí es estándar.

Yoel.
En línea

Saludos, Yoel.
P.D..-   Para mayores dudas, puedes enviarme un mensaje personal (M.P.)
spiderboot

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: ¿a que se debe este error en el codigo?
« Respuesta #3 en: 6 Febrero 2014, 17:49 pm »

gracias amigos, me sirve de mucho su ayuda
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
alguien podria ver este error aque se debe (SOLUCIONADO)
Windows
dvdr 7 5,249 Último mensaje 16 Julio 2011, 13:40 pm
por dvdr
A que se debe este error visual de mozilla?
Dudas Generales
anonimo12121 7 4,270 Último mensaje 10 Julio 2013, 00:33 am
por anonimo12121
A que se debe este error en mono?
GNU/Linux
WHK 1 2,470 Último mensaje 5 Junio 2015, 03:49 am
por WHK
¿Aque se debe este error?
PHP
SrTrp 4 4,633 Último mensaje 20 Noviembre 2017, 18:39 pm
por SrTrp
¿a que se debe este error?
Dudas Generales
inma55 2 2,071 Último mensaje 5 Septiembre 2023, 16:49 pm
por Danielㅤ
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines