Salve!
Devo creare un programma in c nel quale l'utente inserisce due matrici, di cui viene fatta poi la somma e il prodotto. Devo effettuare queste operazioni tramite funzioni.
Ora mi sto concentrando sulla funzione che crea la matrice, ma sto riscontrando non pochi problemi. In particolare non riesco a capire quali parametri di ingresso inserire nella definizione della funzione. Le matrici vanno allocate dinamicamente, quindi l'utente deve inserire il numero di righe e colonne della matrice e viene utilizzata la funzione malloc.
Ecco il codice finora, dove sto solo facendo la funzione che crea la matrice :
Come dichiaro la matrice, che parametri inserisco, e nella main quali variabili dichiaro? Grazie
Devo creare un programma in c nel quale l'utente inserisce due matrici, di cui viene fatta poi la somma e il prodotto. Devo effettuare queste operazioni tramite funzioni.
Ora mi sto concentrando sulla funzione che crea la matrice, ma sto riscontrando non pochi problemi. In particolare non riesco a capire quali parametri di ingresso inserire nella definizione della funzione. Le matrici vanno allocate dinamicamente, quindi l'utente deve inserire il numero di righe e colonne della matrice e viene utilizzata la funzione malloc.
Ecco il codice finora, dove sto solo facendo la funzione che crea la matrice :
C:
/* inclusione delle librerie */
#include <stdio.h>
/* dichiarazione delle funzioni */
void crea_matrice(double **);
int main(void)
{
double **matrice;
crea_matrice(matrice[][num_colonne]);
return(0);
}
/* definizione della funzione per creare una matrice */
void crea_matrice(double ** matrice[][num_colonne])
{
int num_righe, num_colonne;
int i, j;
printf("inserisci il numero di righe della matrice --> ");
scanf("%d",&num_righe);
printf("\n\nInserisci il numero di colonne della matrice --> ");
scanf("%d",&num_colonne);
/* inizializzo le righe della matrice */
matrice= (double**) malloc (num_righe*sizeof(double*));
/* inizializzo anche tutte le colonne della matrice */
for(i = 0; i< num_righe; i++)
{
matrice[I] = (double*)malloc(num_colonne*sizeof(double));
}[/I]
/*riempio la matrice*/
for( i = 0; i < num_righe; i++)
{
for(j = 0; j< num_colonne; j++)
{
printf("\nElemento della %d riga e della %d colonna: ", i+1, j+1);
scanf("%lf", &matrice[j]);
}
}
printf("Ecco la matrice:\n\n");
for(i=0; i<num_righe; i++)
{
for( j=0; j< num_colonne; j++)
{
printf(" %.2f ",matrice[j]);
}
printf("\n");
}
}