Sei sulla pagina 1di 5

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

#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)

58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106

{ 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); } }

Potrebbero piacerti anche