• Viernes 3 de Mayo de 2024, 02:49

Autor Tema:  Error en la main y error sintáctico antes de "int"  (Leído 2584 veces)

hibou_shfer

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Error en la main y error sintáctico antes de "int"
« en: Jueves 26 de Noviembre de 2009, 17:28 »
0
¿Por qué aparece error en la función main y error sintáctico antes de "int" al compilar?
Estoy empezando en lenguaje C y este es el código, ayuda por favor.
#include <stdio.h>
#include <math.h>
#include <conio.h>
#define MAX 350

int main() // aqui esta el primer error
{
// Zona de declaracion de variables
float var;
var == int V[], int elementos // este es el otro error
float suma(var), resta(var), producto(var);
float cociente;
int V[MAX], a, b, i, elementos, opcion;
float nsuma, nresta, nproducto, ncociente, nprodiv;
// el resto del código creo que está bien

Es en Windows, con DevC++ y los float son por la precisión

   long double var=0;
   var = int V[], int elementos
   long double suma(var), resta(var), producto(var);
   long double cociente;
   int V[150], i, opcion, elementos;
   long double nsuma, nresta, nproducto, ncociente, nprodiv;

por eso el V[] para la suma, si lo sustituyo como long double suma(int V[], int elementos), marca error
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
« última modificación: Viernes 27 de Noviembre de 2009, 00:44 por hibou_shfer »

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Error en la main y error sintáctico antes de "int"
« Respuesta #1 en: Jueves 26 de Noviembre de 2009, 19:13 »
0
a riesgo de equivocarme, me parece que te falta  un # en la primera linea.

Saludos :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

Epa

  • Miembro MUY activo
  • ***
  • Mensajes: 242
  • Nacionalidad: ar
    • Ver Perfil
Re: Error en la main y error sintáctico antes de "int"
« Respuesta #2 en: Jueves 26 de Noviembre de 2009, 19:41 »
0
Buenas

En que plataforma trabajas y que compilador usas?

Que alguien me corrija si estoy mal, algunos compiladores no esperan que main devuelva valor, proba poner void main.

var == int V[], int elementos // este es el otro error

El operador == es de comparacion, no de asignacion, tenes que usar =.
Igualmente V lo declaras despues de esa asignacion, por lo que te va adecir que no existe.
en C una vez ejecutada la primera sentencia de un bloque no se pueden declarar mas variables.

float suma(var), resta(var), producto(var);
que es eso?
si son funciones, busca algo de info de como se trabaja con funciones en C, porque no esta de la forma adecuada ni en el lugar adecuado. :comp:


Saludos
The sweet smell of a great sorrow lies over the land.


ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Error en la main y error sintáctico antes de "int"
« Respuesta #3 en: Jueves 26 de Noviembre de 2009, 20:07 »
0
El compañero tiene razon, si

float suma(var), resta(var), producto(var);

son cabeceras de funciones, no se declaran asi, deben ir ANTES DEL MAIN, y cada cabecera en su propia linea, no se pueden declarar todas las cabeceras en una misma linea como con las variables. Aun asi esta mal lo que haces ya que la sentencia

var = int V[];

no es valida ya que var es de tipo float e int v[] es un arreglo (array) de enteros, los tipos no son compatibles.

otro error, a la hora de definir encabezados de funciones, es necesario definir el tipo de los parametros

float suma(var);

es incorrecto como cabecera de funcion, deberia ser:

float suma(float var);

Me sospecho que tu codigo tiene muchos mas errores, aun cuando creas que el resto de tu codigo esta bien, ya que el compilador no siempre marca todos los errores, a veces algunos errores enmascaran otros, es casi seguro que cuando corrijas los errores del principio, te salten mas errores en la parte de abajo, asi que buena suerte.

Saludods :=

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Error en la main y error sintáctico antes de "int"
« Respuesta #4 en: Jueves 26 de Noviembre de 2009, 20:22 »
0
te acabo de decir que hacer

long double suma(var), resta(var), producto(var);

es incorrecto, ademas esta en el lugar incorrecto de tu codigo fuente.

para que te des una mejor idea, dberias tener algo asi:

Código: C
  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<conio.h>
  4.  
  5. // Las cabereras de funciones van antes del main, no dentro del main
  6. // y separadas cada cabecera en su propia linea, y no todas
  7. // las cabeceras en una sola linea, y finalizadas cada una
  8. // con punto y coma
  9.  
  10. long double suma(int V[], int elementos);
  11. long double resta(int v[], int elementos);
  12. long double producto(int v[], int elementos);
  13.  
  14. int main()
  15. {
  16. // Codigo de tu programa
  17.  
  18.     return 0;
  19. }
  20.  
  21.  

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

david_lomber

  • Miembro activo
  • **
  • Mensajes: 34
  • Nacionalidad: mx
  • Impossible is nothing, just do it!!
    • Ver Perfil
    • Pelis DVDRip
Re: Error en la main y error sintáctico antes de "int"
« Respuesta #5 en: Jueves 10 de Diciembre de 2009, 04:44 »
0
Cita de: "Epa"
Buenas

En que plataforma trabajas y que compilador usas?

Que alguien me corrija si estoy mal, algunos compiladores no esperan que main devuelva valor, proba poner void main.

var == int V[], int elementos // este es el otro error

El operador == es de comparacion, no de asignacion, tenes que usar =.
Igualmente V lo declaras despues de esa asignacion, por lo que te va adecir que no existe.
en C una vez ejecutada la primera sentencia de un bloque no se pueden declarar mas variables.

float suma(var), resta(var), producto(var);
que es eso?
si son funciones, busca algo de info de como se trabaja con funciones en C, porque no esta de la forma adecuada ni en el lugar adecuado. :comp:


Saludos


En lo del main tambien se le puede poner

return 0;

y en lo de la asignacion estoy de acuerdo!!

== es para comparar, para asignar es =