SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: bralbamo en Lunes 13 de Mayo de 2013, 01:32

Título: problema con dos errores
Publicado por: bralbamo en Lunes 13 de Mayo de 2013, 01:32
Estoy haciendo un programa que resuelva ecuaciones por eliminacion gaussina pero hay dos errores que no me dejan compilar y no logro arreglarlos. Estos son:
declaración static de ‘muestra’ después de una declaración que no es static
declaración static de ‘proceso’ después de una declaración que no es static

AQUI EL CODIGO

#include <stdio.h>
#include <math.h>


int main()
{
void muestra(int Dim, float Sist[][102]);
int A[3][3] = {{1,-2,3}, {4,5,0},{-7,8,9}};
int B[3] = {0,-1,2};
int Dim=3;
void proceso(int Dim, float Sist[][102]);

Printf("\n");
printf("\n\t\t\t        ***     G A U S S    ***    ");
printf("\n\n ||RESUELVE MATRICES POR EL METODO DE GAUSS||");


int main(void)
{
    int C,Dimension;
    float Sistema[101][102];
    printf("\n\n\nLa Matriz ingresada es: \n\n");
    muestra(Dimension,Sistema);
    proceso(Dimension,Sistema);
    printf("\n\n\nRespuesta(s):\n");
    for(C=1;C<=Dimension;C++) printf("\n X%d=%f\n",C,Sistema[C][Dimension+1]);
   
    scanf("");
    return(0);
}

void muestra(int Dim, float Sist[][102])

{
Título: Re:problema con dos errores
Publicado por: ProfesorX en Lunes 13 de Mayo de 2013, 03:31
Hola al parecer no publicaste todo el codigo, esta incompleto asi que tengo dudas de los errrores.

Aunque no esta completo, veo 2 errores basicos

1. Colocas los prototipos de funcion dentro de otra funcion, en este caso dentro de la funcion main(), eso no es correcto, deben quedar siempre al inicio y fuera de las funciones

2.- Colocas una funcion dentro de otra en este caso un main() dentro de otro main(), eso tampco es permitido, como tampoco esta permitido tener dos funciones llamadas igual, en este caso tienes dos funciones main()

Dejo las correcciones, a reserva de que publiques el codigo completo:

Código: [Seleccionar]
#include <stdio.h>
#include <math.h>

// Los prototipos de funciones debe quedar al inicio y fuera de las funciones
void muestra(int Dim, float Sist[][102]);
void proceso(int Dim, float Sist[][102]);


int main()
{
    //void muestra(int Dim, float Sist[][102]);
    int A[3][3] = {{1,-2,3}, {4,5,0},{-7,8,9}};
    int B[3] = {0,-1,2};
    int Dim=3;
    //void proceso(int Dim, float Sist[][102]);

    printf("\n");
    printf("\n\t\t\t        ***     G A U S S    ***    ");
    printf("\n\n ||RESUELVE MATRICES POR EL METODO DE GAUSS||");


    // No puedes anidar funciones dentro de funciones
    //int main(void)
    //{
    int C,Dimension;
    float Sistema[101][102];
    printf("\n\n\nLa Matriz ingresada es: \n\n");
    muestra(Dimension,Sistema);
    proceso(Dimension,Sistema);
    printf("\n\n\nRespuesta(s):\n");
    for(C=1;C<=Dimension;C++) printf("\n X%d=%f\n",C,Sistema[C][Dimension+1]);

    scanf("");
    return(0);
}

Saludos :)