1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
/*Ecrivez un programme qui additionne les deux matrices suivantes :
A={(1,2),(0,1),(2,2)}, B={(1,2),(1,4),(3,4)}
*/
#include <stdio.h>
//Matrices de [3][2] uniquement!
//Passages des matrices A et B en pointeurs prend - de place!
//pointeur resultat est pris pr etre modifie direct. Sinon besoin d'un return.
void addition(int *pointeurA, int *pointeurB, int *pointeurRes){
int i;
for(i=0; i<12; i+4){
int j;
for(j=0; j<2; j++){
//Soit i le deplacement d'une adresse a l'autre (4 pour un int)
(pointeurRes+i)[j]=((pointeurA+i)[j])+((pointeurB+i)[j]);
}
}
}
int main(){
int matriceA[3][2]={{1,2},{0,1},{2,2}};
//Pointeur vers les 1er element du tableau de 3 (soit, un premier couple de valeurs(d'ou le nombre 2 de sous elements))
int (*ptrA)[2]=matriceA;
int matriceB[3][2]={{1,2},{1,4},{3,4}};
int (*ptrB)[2]=matriceB;
int matriceResultat[3][2];
int (*ptrRes)[2]= matriceResultat;
addition(*ptrA, *ptrB, *ptrRes);
printf("A+B=\n");
int i;
for (i=0; i<3; i++){
printf("\n");
int j;
for (j=0; j<2; j++) {printf("%6d", (matriceResultat)[i][j]);}
}
return 0;
} |
Partager