Mathc matrices/Fichiers c : i dup
Étudions la fonction :
/* ----------------------------------------- */
/* Same as i_mR() but work with the size
in memory
ex : i_RC_mR(M[R_SIZE][C0],M[C_SIZE][C0] */
/* ------------------------------------ */
double **i_RC_mR(
int R, // A[R_SIZE][C0]
int C // A[C_SIZE][C0]
)
{
return(i_mR(--R,--C));
}
/* ------------------------------------ */
/* ------------------------------------ */
utiliser cette fonction.
double **T = i_RC_mR(A[R_SIZE][C0],A[C_SIZE][C0]);
En fait on initialise la taille de la matrice directement en lisant en mémoire celle-ci, au lieu d'utiliser rsize_R(); et csize_R();
On se rappel qu'avant de mémoriser la taille de la matrice dans la fonction i_mR(); on ajoute la ligne zéro et la colonne zéro.
Il faut donc les retrancher avant l'appel de la fonction i_mR(); qui va naturellement les rajouter un peu plus tard.
/* ------------------------------------ */
/* Save as : c00a.c */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
int main(void)
{
double **A = i_mR( R3, C5 );
double **B = i_mR( rsize_R(A), csize_R(A) );
double **C = i_RC_mR( A[R_SIZE][C0],A[C_SIZE][C0] );
clrscrn();
printf(" A :");
r_mR(A,9);
p_mR(A,S8,P0,C7);
printf(" B :");
c_mR(A,B);
p_mR(B,S8,P0,C7);
printf(" C :");
c_mR(A,C);
p_mR(C,S8,P0,C7);
stop();
f_mR(A);
f_mR(B);
f_mR(C);
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
A :
+2 -1 -6 +2 -7
-6 -6 +6 +7 +8
+9 -7 +9 -9 -2
B :
+2 -1 -6 +2 -7
-6 -6 +6 +7 +8
+9 -7 +9 -9 -2
C :
+2 -1 -6 +2 -7
-6 -6 +6 +7 +8
+9 -7 +9 -9 -2
Press return to continue.