Buonasera, sto creando un programma che chiede all'utente di inserire due matrici e ne calcoli il prodotto.
Fin quando inserisco le matrici tutto ok, ma ho qualche problema sul punto in cui calcola il prodotto perché il risultato (qualunque siano le matrici) è sempre la matrice nulla. Qualcuno può dirmi dove sbaglio?
Non ho mai programmato fino ad ora e lo sto facendo perchè ho l'esame di informatica quindi ho qualche difficolta.. Ecco il mio codice
#include <stdio.h>
#include <stdlib.h>
#define maxrighe 100
#define maxcolonne 100
int main () {
int i, j, righea, colonnea;
int r, c, righeb, colonneb;
int a[maxrighe][maxcolonne];
int b[maxrighe][maxcolonne];
int pr[maxrighe][maxcolonne];
int m, t, h;
printf ("Inserisci il numero di righe e di colonne di A\n");
scanf ("%i%i", &righea, &colonnea);
printf ("Inserisci il numero di righe e di colonne di B\n");
scanf ("%i%i", &righeb, &colonneb);
if (righea != colonneb) {
printf ("Errore: Il numero di righe di A deve essere uguale al numero di colonne di B\n");
}
else {
printf ("Inserisci gli elementi della matrice A\n");
for ( i = 0; i < righea; i++) {
for (j = 0; j < colonnea; j++){
scanf ("%i", &a[i][j]);
}}
printf ("La matrice A e':\n");
for (i = 0; i < righea; i++){
for (j = 0; j < colonnea; j++) {
printf ("%2i", a[i][j]);
}
printf ("\n");
}
printf (" Inserisci gli elementi della matrice B\n");
for ( r = 0; r < righeb; r++){
for ( c = 0; c < colonneb; c++) {
scanf ("%i", &b[r][c]);
}}
printf ("La matrice B e':\n");
for (r = 0; r < righeb; r++){
for (c = 0; c < colonneb; c++) {
printf ("%2i", b[r][c]);
}
printf ("\n");
}
printf ("Il prodotto di A e B e' C = \n");
pr[maxrighe][maxcolonne] = pr[righea][colonneb];
for ( m = 0; m < righea; m++)
for ( t = 0; t < colonneb; t++) {
a[m][t] = 0;
};
for ( m = 0; m < righea; m++)
for ( t = 0; t < colonneb; t++)
for ( h = 0; h < colonnea; h++) {
pr[m][t] += a[i][j] * b[r][c];
}
for (m = 0; m < righea; m++) {
for ( t = 0; t < colonneb; t++) {
printf ("%2i", pr[m][t]);
}
printf ("\n");
}
}
return 0;
}