Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Suma y Resta de Matrices
- //By Angel Guerra Esquivel 1CM14 (Glaas2)
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h> // Semilla a plantar en srand();
- int **matriz(int tam);
- void rellenar(int **M, int tam);
- void suma(int **M1, int **M2, int **MR, int tam);
- void resta(int **M1, int **M2, int **MR, int tam);
- void mostrar(int **M, int tam);
- void liberar(int **M, int tam);
- int main(int argc, char *argv[])
- {
- srand(time(NULL)); // Semilla para crear random
- int i=0, j=0, tam=0;
- int **M1, **M2, **MR; // Se declara el tamaño y las matrices
- printf("Inserte el tamano de las matrices (1 digito) >: ");
- scanf("%d", &tam);
- if(tam==0)
- printf("\nERROR: No se puede crear una matriz con 0 elementos");
- M1=(int**)malloc(sizeof(int*)*tam); //inicializacion de matriz
- for(i=0; i<tam; i++)
- M1[i] = (int*)malloc(sizeof(int)*tam);
- rellenar(M1, tam);
- mostrar(M1, tam);
- M2=(int**)malloc(sizeof(int*)*tam);
- for(i=0; i<tam; i++)
- M2[i] = (int*)malloc(tam*sizeof(int));
- rellenar(M2, tam);
- printf("\n\nSumada/Restada con:\n");
- mostrar(M2, tam);
- MR=(int**)malloc(sizeof(int*)*tam);
- for(i=0; i<tam; i++)
- MR[i] = (int*)malloc(tam*sizeof(int));
- suma(M1, M2, MR, tam);
- printf("\n\nEs igual con:\n");
- printf("\n SUMA:\n");
- mostrar(MR, tam);
- printf("\n RESTA:\n");
- resta(M1, M2, MR, tam);
- mostrar(MR, tam);
- liberar(M1, tam);
- liberar(M2, tam);
- liberar(MR, tam);
- printf("\n\n");
- system("pause");
- return 0;
- }
- int **matriz(int tam)
- {
- int **matriz, i;
- matriz=(int**)malloc(sizeof(int*)*tam); //inicializacion de matriz
- for(i=0; i<tam; i++)
- matriz[i] = (int*)malloc(sizeof(int)*tam);
- }
- void rellenar(int **M, int tam)
- {
- int i, j;
- for(i=0; i<tam; i++) //llenado de matriz con numeros aleatorios
- for(j=0; j<tam; j++)
- M[i][j] = rand() %10 ;
- }
- void suma(int **M1, int **M2, int **MR, int tam)
- {
- int i, j;
- for(i=0; i<tam; i++)
- for(j=0;j<tam; j++)
- MR[i][j] = M1[i][j] + M2[i][j] ;
- }
- void resta(int **M1, int **M2, int **MR, int tam)
- {
- int i, j;
- for(i=0; i<tam; i++)
- for(j=0;j<tam; j++)
- MR[i][j] = M1[i][j] - M2[i][j] ;
- }
- void mostrar(int **M,int tam)
- {
- int i, j;
- for(i=0; i<tam; i++)
- {
- printf("\n");
- for(j=0; j<tam; j++)
- printf("%d\t", M[i][j]);
- }
- }
- void liberar(int **M, int tam)
- {
- int i, j;
- for(i=0; i<tam; i++)
- free(M[i]);
- free(M);
- }
Advertisement
Add Comment
Please, Sign In to add comment