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.