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

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Dudas sobre un error
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Dudas sobre un error  (Leído 1,650 veces)
Qtcreatorman

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Dudas sobre un error
« en: 28 Abril 2011, 17:42 pm »

Hola a todos, soy nuevo en este foro y me gustaría saber si alguien puede ayudarme con este problema.
me dice que tengo siete veces el mismo error, que no esta permitido declarar una funcion antes de '{' y no se que hacer.


{
    double **crearMatriz(int m, int n);
    int    triang(int n, double **a, double *b);
    int    pivot(int n, int k, double **a);
    void   sust(int n, double **a, double *b, double *x);
    void   escribir(int n, double *x);

    void main(void)
    {
          int    i, j, n, vRet;
          double **a, *x, *b;

     /* Lectura de datos y creaci¢n dinamica de matrices y vectores */

    printf("Numero de ecuaciones: ");
    scanf("%d", &n);
    a=crearMatriz(n, n);
    printf("\nMatriz del sistema:\n");
     for (i=0; i<n; i++)
        for(j=0; j<n; j++) {
            printf("a(%d, %d): ", i+1, j+1);
            scanf(" %lf", &a[j]);
        }
    b=calloc(n, sizeof(double));
    x=calloc(n, sizeof(double));
    printf("\nTermino independiente:\n");
    for (i=0; i<n; i++) {
        printf("b(%d): ", i+1);
        scanf(" %lf", &b);
    }

    /* Triangularizacion de la matriz */

    vRet=triang(n, a, b);
    if (vRet!=1) {
        printf("Ha aparecido un pivot nulo o muy pequeño. Agur! \n");
        exit(1);
    }

    /* Vuelta atras */

    sust(n, a, b, x);

    /* Escritura de resultados */

    escribir(n, x);
}
    /* Fin de main() */

/* Funcion para hallar el pivot de la columna k */

int pivot(int n, int k, double **a)
{
    int i, imaximo;
    double maximo=0.0;
    double va(double);
    for (i=k; i<n; i++) {
        if (maximo<va(a[k])) {
            maximo=va(a[k]);
            imaximo=i;
        }
    }
    return imaximo;
}

/* Funcion para realizar la triangularizacion de una matriz */


int triang(int nec, double **a, double *b)  {
    int i, j, k, ipivot, error;
    double fac, *temp;
    double va( double );
    for (k=0; k<nec-1; k++) {
        ipivot=pivot(nec, k, a);
        /* intercambio de los punteros a las filas k e imaximo */
        temp=a[k];
        a[k]=a[ipivot];
        a[ipivot]=temp;
        fac=b[k];
        b[k]=b[ipivot];
        b[ipivot]=fac;
        for (i=k+1; i<nec; i++) {
            if (va(a[k][k]) < EPS)
                return error=-1;
            fac=-a[k]/a[k][k];
            for (j=k; j<nec; j++)
                a[j]+=a[k][j]*fac;
            b+=b[k]*fac;
        }
    }
    return error=1;
}
 void sust(int n, double **a, double *b, double *sol) {
    int i, k;
    double sum;
    for (k=n-1; k>=0; k--) {
        sum=0.0;
        for (i=k+1; i<n; i++)
            sum+=a[k]*sol;
        sol[k]=(b[k]-sum)/a[k][k];
    }
}
double **crearMatriz(int m, int n) {
    double **matriz, *mat;
    int i;
    matriz=calloc(m, sizeof(double *));
    matriz[0]=mat=calloc(m*n, sizeof(double));
    for(i=1; i<m; i++)
        matriz=mat+n*i;
    return matriz;
}
void escribir(int n, double *solucion) {
    int i;
    printf("\nEl vector solucion es: \n");
    for (i=0; i<n; i++)
        printf("solucion(%d)= %lf\n", i, solucion);
}
double va(double u) {
    if (u<0.0)
        return -u;
    else
        return u;
}
}


En línea

Acermax

Desconectado Desconectado

Mensajes: 55


Ver Perfil
Re: Dudas sobre un error
« Respuesta #1 en: 28 Abril 2011, 18:25 pm »

Sin entrar muy a profundidad en el código, lo primero que veo es que empiezas abriendo una llave, y cerrándola al final del todo que no tiene mucho sentido, prueba quitándolas.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Tengo varias dudas sobre DVD a formato FLV, y otras cosas sobre FLV
Multimedia
SaintGermain 0 2,621 Último mensaje 30 Mayo 2005, 21:47 pm
por SaintGermain
[DUDAS] Todas las dudas sobre RadASD + MASM aqui « 1 2 3 »
ASM
AleX Inc. 23 22,265 Último mensaje 5 Julio 2010, 11:58 am
por Eternal Idol
Error en script y dudas sobre grep.
Scripting
Vehlore 0 1,906 Último mensaje 9 Junio 2015, 20:45 pm
por Vehlore
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines