#include <stdio.h>
#define RIGHE 4
#define COLONNE 4
typedef struct {
int righe;
int colonne;
float m[RIGHE][COLONNE];
}matrice;
matrice matrice_somma[RIGHE][COLONNE];
matrice matrice_prodotto_scalare[RIGHE][COLONNE];
matrice matrice_prodotto[RIGHE][COLONNE];
matrice matrice_trasposta[RIGHE][COLONNE];
int Leggere_righe(matrice m1);
int Scrivere_righe(matrice m1,int valore);
int Leggere_colonne(matrice m1);
int Scrivere_colonne(matrice m1,int valore);
int Leggere_matrice(matrice m1,int r,int c);
void Scrivere_matrice(matrice m1,int r,int c,int valore);
void Somma_matrici(matrice m1,matrice m2);
void Prodotto_scalare_matrice(matrice m1,float valore);
void Prodotto_matrici(matrice m1,matrice m2);
void Trasposta_matrice(matrice m1);
void Stampare_matrice(matrice m1);
int main()
{
matrice m1;
matrice m2;
}
int Leggere_righe(matrice m1)
{
return m1.righe;
}
int Scrivere_righe(matrice m1,int valore)
{
m1.righe = valore;
return m1.righe;
}
int Leggere_colonne(matrice m1)
{
return m1.colonne;
}
int Scrivere_colonne(matrice m1,int valore)
{
m1.colonne = valore;
return m1.colonne;
}
int Leggere_matrice(matrice m1,int r,int c)
{
return m1.m[r][c];
}
void Scrivere_matrice(matrice m1,int r,int c,int valore)
{
m1.m[r][c] = valore;
return;
}
void Somma_matrici(matrice m1,matrice m2)
{
int i,j;
i = 0;
while (i < Leggere_righe(m1))
{
j = 0;
while (j < Leggere_colonne(m1))
Scrivere_matrice(matrice_somma,i,j) = Leggere_matrice(m1,i,j) + Leggere_matrice(m2,i,j);
j = j+1;
}
i = i+1;
return ;
}
void Prodotto_scalare_matrice(matrice m1,float valore)
{
int i,j;
i = 0;
while (i < Leggere_righe(m1))
{
j = 0;
while (j < Leggere_colonne(m1))
{
Scrivere_matrice(matrice_prodotto_scalare,i,j) = Leggere_matrice(m1,i,j) * valore;
j = j+1;
}
i = i+1;
}
return ;
}
void Trasposta_matrice(matrice m1)
{
int i,j;
i = 0;
while (i < Leggere_righe(m1))
{
j = 0;
while (j < Leggere_colonne(m1))
{
Scrivere_matrice(matrice_trasposta,i,j) = Leggere_matrice(m1,j,i);
j = j+1;
}
i = i+1;
}
return ;
}
void Prodotto_matrici(matrice m1,matrice m2)
{
int i,j,k;
float risultante;
i = 0;
while (i < Leggere_righe(m1))
{
j = 0;
while (j < Leggere_colonne(m2))
{
k = 0;
while (k < Leggere_colonne(m1))
{
risultante = 0;
risultante = Leggere_matrice(m1,i,k) * Leggere_matrice(m2,k,j);
Scrivere_matrice(matrice_prodotto,i,j) = risultante;
k = k+1;
}
j = j+1;
}
i = i+1;
}
return;
}
void Stampare_matrice(matrice m1)
{
int i,j;
i = 0;
while (i < Leggere_righe(m1))
{
j = 0;
while (j < Leggere_colonne(m1))
{
printf("%f",Leggere_matrice(m1,i,j));
printf("");
j = j+1;
}
printf("\n");
i = i+1;
}
return ;
}
questo è il codice che ho scritto. vorrei che mi aiutaste a trovare gli errori e vorrei sapere come sarebbe il codice di queste operazioni(somma,prodotto,prodotto scalare,trasposta,lettura,stampa,ecc) non con le matrici,ma con i vettori. Potreste aiutarmi per favore?