Mathc matrices/Fichiers c : p01b
Installer et compiler ce fichier dans votre répertoire de travail.
p01b.c |
---|
/* ------------------------------------ */
/* Save as : p01b.c */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
void p2_mR(
double **A,
int dr
)
{
int r;
int c;
for (r = R1; r < A[R_SIZE][C0]; r++)
{
for (c = C1; c < A[C_SIZE][C0]; c++)
printf("%+.*f ",dr,A[r][c]);
printf("\n");
}
}
/* ------------------------------------ */
void fun(int r,int c)
{
double **A = r_mR(i_mR(r,c),9);
clrscrn();
printf(" A[R%d,C%d] : \n",rsize_R(A),csize_R(A));
p_mR(A,S4,P0,C8);
p2_mR(A, P3);
f_mR(A);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
fun(rp_I(R4),rp_I(C8));
while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
La fonction p_mR(); existant déjà dans la librairie je l'ai ici renommé p2_mR();
Exemple de sortie écran :
A[R3,C2] :
+9 -6
-1 -4
+3 -6
+9.000 -6.000
-1.000 -4.000
+3.000 -6.000
Press return to continue
Press X to stop
Nous avons commencé par contrôler le nombre de chiffres à afficher après la virgule.
J'ai ajouté le signe + dans l'espace de formatage pour que le signe - qui déplace une colonne vers la droite ne pose plus de problème.
Le caractère * sera remplacé par la valeur choisie.
/* Ici si dr = 3 (P3) */
printf("%+.*f ",dr,A[r][c]);
/* est équivalent à */
printf("%+.3f ",A[r][c]);