Glaas2

Suma/Resta Matrices

Sep 4th, 2012
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.46 KB | None | 0 0
  1. //Suma y Resta de Matrices
  2. //By Angel Guerra Esquivel   1CM14 (Glaas2)  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <time.h> // Semilla a plantar en srand();
  6. int **matriz(int tam);
  7. void rellenar(int **M, int tam);
  8. void suma(int **M1, int **M2, int **MR, int tam);
  9. void resta(int **M1, int **M2, int **MR, int tam);
  10. void mostrar(int **M, int tam);
  11. void liberar(int **M, int tam);
  12.  
  13. int main(int argc, char *argv[])
  14. {
  15. srand(time(NULL)); // Semilla para crear random
  16. int i=0, j=0, tam=0;
  17. int **M1, **M2, **MR; // Se declara el tamaño y las matrices
  18.  
  19.  
  20. printf("Inserte el tamano de las matrices (1 digito) >: ");
  21. scanf("%d", &tam);
  22. if(tam==0)
  23.  printf("\nERROR: No se puede crear una matriz con 0 elementos");
  24.  
  25. M1=(int**)malloc(sizeof(int*)*tam); //inicializacion de matriz
  26. for(i=0; i<tam; i++)
  27.     M1[i] = (int*)malloc(sizeof(int)*tam);
  28.    
  29. rellenar(M1, tam);
  30. mostrar(M1, tam);
  31.  
  32.  
  33. M2=(int**)malloc(sizeof(int*)*tam);
  34. for(i=0; i<tam; i++)
  35.     M2[i] = (int*)malloc(tam*sizeof(int));
  36.    
  37. rellenar(M2, tam);  
  38. printf("\n\nSumada/Restada con:\n");
  39. mostrar(M2, tam);
  40.      
  41. MR=(int**)malloc(sizeof(int*)*tam);
  42. for(i=0; i<tam; i++)
  43.     MR[i] = (int*)malloc(tam*sizeof(int));
  44.    
  45. suma(M1, M2, MR, tam);  
  46.  
  47. printf("\n\nEs igual con:\n");
  48. printf("\n SUMA:\n");
  49.  
  50. mostrar(MR, tam);
  51.      
  52. printf("\n RESTA:\n");
  53.  
  54. resta(M1, M2, MR, tam);
  55. mostrar(MR, tam);
  56.      
  57. liberar(M1, tam);
  58. liberar(M2, tam);
  59. liberar(MR, tam);
  60.  
  61.   printf("\n\n");
  62.  
  63.   system("pause");
  64.   return 0;
  65. }
  66.  
  67. int **matriz(int tam)
  68. {
  69.  int **matriz, i;
  70.   matriz=(int**)malloc(sizeof(int*)*tam); //inicializacion de matriz
  71. for(i=0; i<tam; i++)
  72.     matriz[i] = (int*)malloc(sizeof(int)*tam);  
  73. }
  74.  
  75. void rellenar(int **M, int tam)
  76. {
  77.  int i, j;
  78.  for(i=0; i<tam; i++) //llenado de matriz con numeros aleatorios
  79.     for(j=0; j<tam; j++)
  80.      M[i][j] = rand() %10 ;        
  81. }
  82.  
  83. void suma(int **M1, int **M2, int **MR, int tam)
  84. {
  85.  int i, j;
  86. for(i=0; i<tam; i++)
  87.     for(j=0;j<tam; j++)
  88.       MR[i][j] = M1[i][j] + M2[i][j] ;
  89. }
  90.  
  91. void resta(int **M1, int **M2, int **MR, int tam)
  92. {
  93.  int i, j;    
  94. for(i=0; i<tam; i++)
  95.     for(j=0;j<tam; j++)
  96.       MR[i][j] = M1[i][j] - M2[i][j] ;      
  97. }
  98.  
  99. void mostrar(int **M,int tam)
  100. {
  101.   int i, j;  
  102.  for(i=0; i<tam; i++)
  103.     {
  104.     printf("\n");
  105.     for(j=0; j<tam; j++)
  106.       printf("%d\t", M[i][j]);
  107.       }
  108. }
  109.  
  110. void liberar(int **M, int tam)
  111. {
  112.  int i, j;
  113.  for(i=0; i<tam; i++)
  114.     free(M[i]);
  115.   free(M);        
  116. }
Advertisement
Add Comment
Please, Sign In to add comment