Salve a tutti
ho provato a scrivere un programma che facesse il prodotto fra due matrici:
#include<stdio.h>
#include<stdlib.h>
main()
{
int i, j, k;
int n,m,c;
printf("Il numero di righe del primo e' ");
scanf("%d", &n);
printf("Il numero di colonne del primo e' ");
scanf("%d", &m);
printf("il numero di colonne del primo è anche il numero di righe del secondo\n");
printf("Il numero di colonne del secondo e' ");
scanf("%d", &c);
int A[n][m];
for (i=0; i<n; i++)
{
for (j=0; j<m; j++)
{
printf("Inserire l'elemento in posizione (%d, %d) della prima matrice:", i, j);
scanf("%d", &A[i][j]);
}
}
int B[m][c];
for (i=0; i<m; i++)
{
for (j=0; j<c; j++)
{
printf("Inserire l'elemento in posizione (%d, %d) della seconda matrice:", i, j);
scanf("%d", &B[i][j]);
}
}
//inizializzo
int C[n][c];
for (i=0; i<n; i++)
{
for (j=0; j<c; j++)
{
C[n][c]=0;
}
}
//prodotto
for(i=0; i<n; i++)
{
for(j=0;j<c; j++)
{
for(k=0;k<m;k++)
{
C[i][j]+= A[i][k]*B[k][j];
}
}
}
//stampa
for (i=0; i<n; i++)
{
for (j=0; j<c; j++)
{
printf("%d", C[i][j]);
}
printf("\n");
}
system("pause");
}
il problema è che mi stampa valori assurdi nonostante abbia inizializzato prima la matrice a 0
ho anche levato la parte sotto il commento //prodotto e ho visto che non mi stampa tutti 0