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

p02b.c
cntrl le nb de colonne par ligne
/* ------------------------------------ */
/*  Save as :   p02b.c                  */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
void p2b_mR(
double **A,
int Cx
)
{
int r;
int c;

int firstc = C1;
int lastc  = C1;

while(firstc<A[C_SIZE][C0])
     {  
		 
/*   Select the last column  to draw  */	
	       
      if( (firstc+Cx) < A[C_SIZE][C0])
      
           lastc  += Cx;
      else                 
           lastc  = A[C_SIZE][C0];
           
/*          Draw the Cx columns         */

 	  for(r=R1; r<A[R_SIZE][C0]; r++)
         {
          printf("\n");
          
 	      for (c=firstc; c<lastc; c++)
 	      
               printf("%+4.0f ",A[r][c]);
          }
          
/* A line between each part of the matrix  */ 
 
      printf("\n");
      
/*   Create a new first column         */	
      
      firstc += Cx; 
     }
}
/* ------------------------------------ */
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,C4);

  p2b_mR(A,C4);

  f_mR(A);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));
  
   do 
        fun(rp_I(R3),rp_I(C9));
        
    while(stop_w());
        
  return 0;
}


La fonction p_mR(); existant déjà dans la librairie je l'ai ici renommé p2b_mR();

C'est simplement une variante de la fonction précédente effectuant exactement le même travail.


Exemple de sortie écran :

   A[R3,C6] : 

  -5   +6   +2   +6 
  -3   +6   +2   -3 
  -5   +2   +8   +4 

  -1   +8 
  +6   -5 
  -1   -3 


  -5   +6   +2   +6 
  -3   +6   +2   -3 
  -5   +2   +8   +4 

  -1   +8 
  +6   -5 
  -1   -3 

 Press return to continue
 Press X      to stop    x

Étudier bien la fonction précédente, et vous devriez sans trop de problèmes comprendre cette nouvelle version.

Cet article est issu de Wikibooks. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.