Я хочу знать, что не так в моем коде. Я не могу вывести правильное значение умножения.
int i=0,j=0,k=0,l=0,m=0,n=0,q=0,prod=0; int a[3][3],b[3][3],s[3][3]; int *p; ////////////////////////////////////////////////////////////////////////////// INITIALIZING FIRST MATRIX printf("Enter the first matrix \n \n"); while(i<3) { j=0; while(j<3) { scanf("%d",&a[i][j]); j++; } i++; } printf("\n"); /////////////////////////////////////////////////////////////////////////// DISPLAYING FIRST MATRIX p=&a[0][0]; printf("The first matrix is \n\n"); i=0; while(i<3) { j=0; while(j<3) { printf("%d \t ",*(p+i*3+j)); j++; } printf("\n"); i++; } printf("\n"); ////////////////////////////////////////////////////////////////////////// INITIALIZING SECOND MATRIX printf("Enter the second matrix \n \n"); while(k<3) { l=0; while(l<3) { scanf("%d",&b[k][l]); l++; } k++; } printf("\n"); ////////////////////////////////////////////////////////////////////////// DISPLAYING SECOND MATRIX p=&b[0][0]; printf("The second matrix is \n\n"); k=0; while(k<3) { l=0; while(l<3) { printf("%d \t",*(p+k*3+l)); l++; } printf("\n"); k++; } printf("\n"); ////////////////////////////////////////////////////////////////////// CALCULATING MATRIX MULTIPLICATION for(m=0;m<3;m++){ for(n=0;n<3;n++) { for(q=0;q<3;q++){ prod=prod+a[i][q]*b[q][l]; } s[m][n] = prod; prod=0; } } printf("Resultant matrix : \n"); for(m=0;m<3;m++) { for(n=0;n<3;n++) printf("%d ",s[m][n]); printf("\n"); } return 0; }
Что я уже пробовал:
успешно принимает и печатает значение матрицы, но дает неверное значение умножения