home *** CD-ROM | disk | FTP | other *** search
- /*********************************************************************
- * CH09_10.C Tableaux *
- * Addition de deux matrices en utilisant des pointeurs *
- *********************************************************************/
-
- #include<stdio.h>
-
- #define dim1 2
- #define dim2 3
-
- void LitInt( int*);
- void Initialise( int*);
- void Affiche( int*);
- void Addition( int*, int*, int*);
-
- main( void)
- {
- int tab0[dim1][dim2], tab1[dim1][dim2], tab2[dim1][dim2];
-
- Initialise( tab1);
- Initialise( tab2);
-
- Addition( tab0, tab1, tab2);
-
- Affiche( tab0);
- }
-
- void Addition( int *ptr0, int *ptr1, int *ptr2)
- {
- int i, j;
-
- for( i= 0; i< dim1; i++)
- {
- for( j= 0; j< dim2; j++)
- {
- *ptr0++= *ptr1++ + *ptr2++;
- }
- }
- }
-
- void Initialise( int *ptr)
- {
- int i, j;
-
- printf("\n Initialisation d'une matrice [%d][%d]\n",
- dim1, dim2);
-
- for( i= 0; i< dim1; i++)
- {
- for( j= 0; j< dim2; j++)
- {
- printf(" tab[%d][%d]= ", i, j);
- LitInt( ptr++);
- }
- }
- }
-
- void Affiche( int *ptr)
- {
- int i, j;
-
- for( i= 0; i< dim1; i++)
- {
- for( j= 0; j< dim2; j++)
- {
- printf("\n tab[%d][%d]= %d", i, j, *ptr++);
- }
- }
- }
-
- void LitInt( int *entier)
- {
- double dble;
- do
- {
- while( scanf("%lf", &dble)!= 1)
- while( getchar() != '\n');
- while( getchar() != '\n');
- }
- while( dble< -32768.0 || dble> 32767.0);
- *entier= (int) dble;
- }
-
- /*
- Initialisation d'une matrice [2][3]
- tab[0][0]= 0
- tab[0][1]= 1
- tab[0][2]= 2
- tab[1][0]= 3
- tab[1][1]= 4
- tab[1][2]= 5
-
- Initialisation d'une matrice [2][3]
- tab[0][0]= 5
- tab[0][1]= 4
- tab[0][2]= 3
- tab[1][0]= 2
- tab[1][1]= 1
- tab[1][2]= 0
-
- tab[0][0]= 5
- tab[0][1]= 5
- tab[0][2]= 5
- tab[1][0]= 5
- tab[1][1]= 5
- tab[1][2]= 5 */
-
-
-
-
-