Salve a tutti.Dovrei Scrivere una funzione che prende in input una matrice e restituisca in output la matrice
trasposta (ovvero la matrice in cui la j-esima colonna è la j-esima riga della matrice data,per j = 1, 2, . . . , n).
Ho scritto il programma solo che non funziona in modo corretto.Qualcuno saprebbe come aiutarmi???.Attendo vostre riposte.Nel frattempo pubblico il codice che ho già scritto.Grazie in anticipo!!!!
#include<stdio.h>
#include<stdlib.h>
int f(int** v,int len,int len1); //prototipo della funzione;
void stampa(int** v,int len,int len1); //prototipo della funzione;
int main(){
int len,len1;
int** v; //dichiaro la matrice;
int i,j;
int **funz;
printf("Inserisci la grandezza delle righe della matrice:");
scanf("%d",&len);
printf("\nInserisci la grandezza delle colonne della matrice:");
scanf("%d",&len1);
v=(int**)malloc(sizeof(int)*len*len1); //alloco la matrice;
for(i=0;i<len;i++)
for(j=0;j<len1;j++){
printf("\n\nInserisci l'elelmento[%d][%d] della matrice:\t",i+1,j+1);
scanf("%d",&v[i][j]);
}
for(i=0;i<len;i++)
for(j=0;j<len1;j++){
printf("\n\nL'elemento[%d][%d] della matrice vale:\t%d",i+1,j+1,v[i][j]);
}
funz=f(v,len,len1); //richiamo la funzione;
stampa(funz,len,len1); //richiamo la procedura per stampara la matrice inversa;
free(v);
free(funz);
return 0;
}
int f(int** v,int len,int len1){ //funzione che svolge l'esercizio;
int** v2; //dichiaro la seconda matrice;
int i,j;
v2=(int**)malloc(sizeof(int)*len*len1); //alloco la matrice;
for(i=0;i<len;i++)
for(j=0;j<len1;j++){
v2[i][j]=v[j][i];
}
return v2;
}
void stampa(int** v,int len,int len1){ //procedura per stampare la matrice inversa;
int i,j;
int** v2;
for(i=0;i<len;i++)
for(j=0;j<len1;j++){
printf("",v2[i][j]);
}
printf("\n\n");
}