jesus_christ votre nouveau dieu | Code :
- #include <stdio.h>
- #include <stdlib.h>
- typedef int Matrix2[ 2 ][ 2 ];
- typedef int Matrix10[ 10 ][ 10 ];
- void soustraction( int* resultat, const int* mat1, const int* mat2, int N, int M )
- {
- int i, j;
- for( i=0; i<N; i++ )
- for( j=0; j<M; j++ )
- resultat[ i * M + j ] = mat1[ i * M + j ] - mat2[ i * M + j ];
- }
- int main()
- {
- Matrix10 matrice1;
- Matrix2 matrice2;
- Matrix2 matrice3;
- int i,j;
- for(i=0;i<2;i++)
- for(j=0;j<2;j++)
- scanf("%d",&matrice1[i][j]);
- for(i=0;i<2;i++)
- for(j=0;j<2;j++)
- scanf("%d",&matrice2[i][j]);
- soustraction( matrice3, matrice1, matrice2, 2, 2 );
- //affichage
- printf("\nLa Differance entre les deux Matrice est:\n\n" );
- for(i=0;i<10;i++)
- for(j=0;j<10;j++)
- printf("%d",matrice3[i][j]);
- }
|
Comme je suis de bonne humeur, voila une solution, plus propre. J'ai pas compilé donc modulo une parenthèse manquante, ça devrait marcher.
Quelques remarques :
- Utiliser des type tableaux c'est assez casse-gueule en C pour un débutant. Par exemple, quelque soit la dimention d'un tableau (int[], int[][], int [][][][][][]...) le type sous-jacent est toujours int*. Un tableau est aussi un poineur, mais c'est tout, jamais un pointeur de pointeur. Et calculer les indices devient vite un calvaire. Le C99 a arrangé tout ça avec le type int[n] avec n variable, mais c'est peu employé.
- Mets des accolades ou non pour les boucles for d'une ligne, mais soit cohérent, ne les mets pas une fois sur deux.
- Mettre du texte en français direct dans le code c'est déjà pas propre, essaye au moins de ne pas faire 3 fautes dans une phrase.
- On est en 2009, code au moins à la norme de 1989 : int main(), et pas juste main(), et utilise const, si si, ça existe aussi en C depuis 89. Mais je te pardonne car je n'ai jamais vu de prof l'enseigner à ses élèves, alors que c'est si pratique.
- Pourquoi une des matrice est 10x10 et les autres 2x2 ? L'affichage sur 10x10 de matrice3 va planter, je te préviens, j'ai laissé la faute. De toute façon en Math les matrices sont sensées avoir la même taille pour être additionnées.
Message édité par jesus_christ le 04-04-2009 à 14:17:14
|