Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Su Made Matrices
Su Made Matrices
#include <stdio.h> #include <stdlib.h> double **crearMatriz(int n,int m); void llenarMatriz(int n,int m,double **matriz); void sumaMatrices(int n,int m,double **a,double **b,double **c); void imprimirMatriz(double **matriz,int n,int m); void liberarMatriz(double **matriz,int n);
main(){ double **a,**b,**c; int n,m,i,j; printf("Introduce el numero de renglones y columnas:"); scanf("%d,%d",&n,&m); a=crearMatriz(n,m); b=crearMatriz(n,m); c=crearMatriz(n,m); printf("\nMatriz A"); llenarMatriz(n,m,a); printf("\nMatriz B"); llenarMatriz(n,m,b); sumaMatrices(n,m,a,b,c); printf("\nEl resulatado de la suma de las matrices A+B es igual a:\n"); imprimirMatriz(c,n,m); liberarMatriz(c,n); liberarMatriz(b,n); liberarMatriz(a,n); system("pause"); return 0; } double **crearMatriz(int n,int m) { double **matriz; int i; matriz=(double**)malloc(n*sizeof(double*)); if(matriz==NULL) { printf("Falla obtener memoria"); return NULL; } for(i=0;i<n;i++){ matriz[i]=(double*)malloc(m*sizeof(double)); if(matriz[i]==NULL) { printf("Falla al obtener memoria para el indice %d",i); return NULL; } } return matriz; } void llenarMatriz(int n, int m,double **matriz)
{ int i,j; for(i=0;i<n;i++) { printf("\n"); for(j=0;j<m;j++) { printf("elemento %d, %d: ",i+1,j+1); scanf("%lf",(*(matriz+i)+j)); } } } void sumaMatrices(int n,int m,double **a,double **b, double **c) { int i,j; for(i=0;i<n;i++){ for(j=0;j<m;j++){ *(*(c+i)+j)=(*(*(a+i)+j))+(*(*(b+i)+j)); } } } void imprimirMatriz(double **matriz,int n, int m) { int i,j; for(i=0;i<n;i++) { for(j=0;j<m;j++) printf("%lf\t",*(*(matriz+i)+j)); printf("\n"); } } void liberarMatriz(double **matriz,int n) { int i; for(i=0;i<n;i++) { free(matriz[i]); free(matriz); } }
#include <stdio.h> #include <stdlib.h> double **crearMatriz(int n,int m); void llenarMatriz(int n,int m,double **matriz); void sumaMatrices(int n,int m,double **a,double **b,double **c); void imprimirMatriz(double **matriz,int n,int m); void liberarMatriz(double **matriz,int n); main(){ double **a,**b,**c; int n,m,i,j; printf("Introduce el numero de renglones:"); scanf("%d",&n); printf("Introduce el numero de columnas:"); scanf("%d",&m); a=crearMatriz(n,m); b=crearMatriz(n,m); c=crearMatriz(n,m); llenarMatriz(n,m,a); llenarMatriz(n,m,b); sumaMatrices(n,m,a,b,c); imprimirMatriz(c,n,m); liberarMatriz(a,n); liberarMatriz(b,n); liberarMatriz(c,n); system("pause"); } double **crearMatriz(int n,int m) { double **memoria; int i; memoria=(double**)malloc(n*sizeof(double*)); for(i=0;i<n;i++){ memoria[i]=(double*)malloc(m*sizeof(double)); } return memoria; } void llenarMatriz(int n, int m,double **matriz) { int i,j; for(i=0;i<n;i++) { printf("\n"); for(j=0;j<m;j++) { printf("elemento %d, %d: ",i+1,j+1); scanf("%lf",&matriz[i][j]); } } } void sumaMatrices(int n,int m,double **a,double **b,double **c) { int i,j; for(i=0;i<n;i++){ for(j=0;j<m;j++){ c[i][j]=a[i][j]+b[i][j];
} } } void imprimirMatriz(double **matriz,int n, int m) { int i,j; for(i=0;i<n;i++) { for(j=0;j<m;j++) printf("\nElemento %d,%d de la matriz C es:%lf\n",i,j,matriz[i][j]); } } void liberarMatriz(double **matriz,int n) { int i; for(i=0;i<n;i++) { free(matriz[i]); free(matriz); } }