Ho apportato alcune modifiche al codice ma continua a non funzionare com deve!
codice:
#include<stdio.h>
//Prototipo della funzione;
void diag(float **m,int Ri,int Co, float *somma_colonne);
int main()
{
float **m;
int r,c,i;
float *v,Ri,Co;
printf("Inserisci il numero delle righe(colonne) della matrice quadrata:\n");
scanf("%f",&Ri);
Ri=Co;
v = (float *)malloc(Ri * sizeof(float));
/* allocazione della matrice dinamica */
m = (float **)malloc(Ri * sizeof(float*));
for (r = 0; r < Ri; r++){
m[r] = malloc(Ri*sizeof(float));}
//Inizializzazione della matrice
printf("\nInserisci gli elementi della matrice %f X %f:\n",Ri,Ri);
for(r=0;r<Ri;r++){
for(c=0;c<Co;c++){
scanf("%f",&m[c][r]);
}
}
//Stampa della matrice
for(r=0;r<Ri;r++){
for(c=0;c<Co;c++){
printf("%f\t",m[c][r]);
}
printf("\n");
}
diag(m,Ri,Co,v);
for(i=0;i<Co;i++){
printf("La somma delle colonne e': %f \n",v[i]);}
free(v);
printf("La memoria occupata dal vettore e' stata liberata");
getchar();getchar();
return 0;
}
//Definizione della funzione;
void diag(float **m,int Ri,int Co,float *somma_colonne){
int i,j;
for(i=0;i<Ri;i++){
somma_colonne[i] =m[i][0] ;
for (j=0;j<Co;j++)
somma_colonne[i] =somma_colonne[i] + m[i][j];
}
}