Problema con le matrici in C

di il
3 risposte

Problema con le matrici in C

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

3 Risposte

Devi accedere o registrarti per scrivere nel forum
3 risposte