Matriz triangulada inferior

Iniciado por Snarky, 9 Octubre 2017, 12:59 PM

0 Miembros y 1 Visitante están viendo este tema.

Snarky

Tengo esta función que calcula x[0],x[1],x[2] la cual n son las filas, L la matriz, x la incógnita y la b la solución. El problema es que me piden que la llame desde el main y no se como pasarle los parámetros a la función, os la dejo aquí:

void resTinf (int n, double **L, double *x, double *b){


int i, k;
x[0]=b[0];

for (i = 1, i<n, i++){

x[i]=b[i];

for (k = 0, k<i, k++){

x[i] = x[i]-L[i][k]*x[k];
}


}


x[2] = b[2] - L[2][0]*x[0]-L[2][1]*x[1];


printf(x[1], x[2], x[3]);



}



· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro
-Engel Lex

ivancea96

En el main tendrás que tener declaradas las 3 variables: L, x y b (y la n también, aunque la puedes pasar directamente a la función sin más):
Código (cpp) [Seleccionar]
resTinf(varN, varL, vaxR, varB)
Sabiendo que cada variable tendrá eltipo correcto.

Snarky


Tengo declaradas así las variables. Como debo llamar a la función? Voy perdido en cuanto punteros.
int main {
   double **L,
   double *x;
   double *b;

   L[1][0] = 3;
   
   L[2][0] = 3;
   
   L[2][1] = 3;
   
   b[0] = 2.0;
   
   b[1] = 2;
   
   b[2] = 2;

}

ivancea96

Los punteros son solo variables con un entero guardado (una dirección de memoria). A parte de eso, no almacenan nada más, los datos están en la memoria a la que apunta. Esa memoria a la que apunta, tienes que reservarla (malloc).

Es preferible que busques en Google sobre C y memoria dinámica, tendrás muchas más referencias.