Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Snarky en 9 Octubre 2017, 12:59 pm



Título: Matriz triangulada inferior
Publicado por: Snarky en 9 Octubre 2017, 12:59 pm
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í:

Código
  1. void resTinf (int n, double **L, double *x, double *b){
  2.  
  3.  
  4. int i, k;
  5. x[0]=b[0];
  6.  
  7. for (i = 1, i<n, i++){
  8.  
  9. x[i]=b[i];
  10.  
  11. for (k = 0, k<i, k++){
  12.  
  13. x[i] = x[i]-L[i][k]*x[k];
  14. }
  15.  
  16.  
  17. }
  18.  
  19.  
  20. x[2] = b[2] - L[2][0]*x[0]-L[2][1]*x[1];
  21.  
  22.  
  23. printf(x[1], x[2], x[3]);
  24.  
  25.  
  26.  
  27. }


· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro (http://foro.elhacker.net/reglas.htm)
-Engel Lex


Título: Re: Matriz triangulada inferior
Publicado por: ivancea96 en 9 Octubre 2017, 19:52 pm
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
  1. resTinf(varN, varL, vaxR, varB)
Sabiendo que cada variable tendrá eltipo correcto.


Título: Re: Matriz triangulada inferior
Publicado por: Snarky en 9 Octubre 2017, 23:54 pm

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;

}


Título: Re: Matriz triangulada inferior
Publicado por: ivancea96 en 10 Octubre 2017, 20:06 pm
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.