Bonsoir tout le monde. Je suis étudiant et débutant en programmation. Récemment j'ai eu l'idée d'écrire un programme en c++ capable de faire la multiplication
de 2 matrices; et je m'y suis lancé du coup(Histoire de prendre de l'avance sur mes camarades). Au bout d'un moment, j'ai décidé d'écrire le programme de manière à ce qu'il fasse la multiplication de 2 matrices carrées seulement. Malheureusement je ne suis pas arrivé à obtenir le résultat voulu. Je ne sais pas ce qui ne va pas avec mon programme. Je serais vraiment ravi que vous m'aidiez à identifier le problème et à le régler. Merci d'avance !
voici le code que j'ai écrit :
Code:#include<stdio.h> int main() { int matrice1[2][2],matrice2[2][2], matrice3[2][2]; int i,j,taille1,s,c1=0,c2=0,i2=0,j2=0,j3=0; //afficher un message à l'utilisateur printf("Ce programme vous permet de faire la multiplication de 2 matrice \n carrées dont la taille est infèrieure à 11\n"); do { printf(" Entrez la taille de vos matrices\n"); scanf("%d",&taille1); //ici, j'essaie d'abord avec une taille de 2 } while(taille1<=0 || taille1>2); printf("Vous allez remplir les 2 matrices ensembles\n"); for(i=0;i<taille1;i++) for(j=0;j<taille1;j++) { printf("Entrez l'élément [%d,%d] de la première matrice\n",i,j); scanf("%d",&matrice1[i][j]); printf("Entrez l'élément [%d,%d] de la deuxième matrice\n",i,j); scanf("%d",&matrice2[i][j]); } printf("\n"); //afficher un espace pour bien écrire printf("Voici les deux matrices \n"); for(i=0;i<taille1;i++) { for(j=0;j<taille1;j++) printf("%d\t",matrice1[i][j]); printf("\n"); } //affichage de la seconde matrice printf("\n"); for(i=0;i<taille1;i++) { for(j=0;j<taille1;j++) printf("%d\t",matrice2[i][j]); printf("\n"); } printf("\n"); printf(" voici la multiplication des deux matrices carré\n"); s=0;// initialiser la somme while(i!=taille1) { s=0;j2=0;i2=0; while (j2 !=taille1*2) { j3=0; for(j=0;j<taille1;j++) { j3++; if(j2<taille1 ) { s=s+matrice1[i][j]*matrice2[c1][c2]; // remplissage de la treoisième matrice c1=c1+1; } if(j2>=taille1) { c1=0; c2++; if(j3==taille1) { i2++; c1++; } s=s+matrice1[i][j]*matrice2[c1][c2]; } j2=j2+1; matrice3[i][i2]=s; j++; } } i++; } for(i=0;i<taille1;i++) { for(j=0;j<taille1;j++) printf("%d\t",matrice3[i][j]); printf("\n"); } return 0; }
-----