Mathc matrices/Fichiers c : p01b

Un livre de Wikilivres.
Sauter à la navigation Sauter à la recherche


Installer et compiler ce fichier dans votre répertoire de travail.

Crystal Clear mimetype source c.png p01b.c
ctrl de la virgule
/* ------------------------------------ */
/*  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_mR(A),csize_mR(A));
  p_mR(A,4,0,C8);

  p2_mR(A, 0);

  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,C4] : 

  +2   +6   -9   +8 
  -1   +8   -3   -1 
  -7   -9   -1   -1 

+2 +6 -9 +8 
-1 +8 -3 -1 
-7 -9 -1 -1 

 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 = 0   */

 printf("%+.*f ",dr,A[r][c]);

/* est équivalent à   */

printf("%+.0f ",A[r][c]);