Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/05/2012, 12:45
adalsuper
 
Fecha de Ingreso: mayo-2012
Mensajes: 60
Antigüedad: 11 años, 11 meses
Puntos: 0
Pregunta problema con suma de matrices en C

Hola muy buenas, estaba haciendo un ejercicio en C en el que me piden que escriba 9 numeros en un numeros.txt y que almacene esos nºs en una matriz de 3x3.
despues que coja otra matriz 3x3 y la escanee de teclado

cuando las tenga, tengo que grabar en dos ficheros, la suma de las matrices y en otro el producto de las matrices.

el problema es que al ejecutar se me escriben valores que no se corresponden con la suma ni con la multiplicacion.
el codigo seria:
Código C:
Ver original
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #define MAX 3
  4.  
  5. int
  6. main ()
  7. {
  8.  
  9.   int matriz1[MAX][MAX], matriz2[MAX][MAX], sum[MAX][MAX], produc[MAX][MAX];
  10.   int i, j, k, l,a,b,c,d,e,g,h,o;
  11.   FILE *f, *m, *s;
  12.   //int suma, producto;
  13.  
  14.   /*Abrimos el fichero numeros.txt para leer información */
  15.  
  16.   f = fopen ("numeros.txt", "r");
  17.  
  18.   /*Creamos dos bucles para que nos vaya leyendo numeros y los cargue en la matriz */
  19.   for (i = 0; i < MAX; ++i)
  20.     {
  21.       for (j = 0; j < MAX; ++j)
  22.     fscanf (f, "%d", &matriz1[i][j]);
  23.     }
  24.  
  25.   fclose (f);           //cerramos el fichero
  26.  
  27.   /*Creamos un bucle para que nos vaya introduciendo los valores a la matriz2 desde teclado */
  28.  
  29.   for (k = 0; k < MAX; ++k)
  30.     {
  31.       for (l = 0; l < MAX; ++l)
  32.     {
  33.       printf ("Introduce los valores de la matriz:\n");
  34.       scanf ("%d", &matriz2[i][j]);
  35.     }
  36.     }
  37.  
  38.   /*Abrimos el fichero en el que almacenamos la suma de las matrices */
  39.   s = fopen ("suma.txt", "w");
  40.  
  41.   /*bucle para sumar */
  42.  
  43.   for (a = 0; a < MAX; ++a)
  44.     {
  45.       for (b = 0; b < MAX; ++b)
  46.     sum[a][b] = matriz1[a][b] + matriz2[a][b];
  47.     }
  48.  
  49.   fprintf (s, "la suma de las matrices es de:\n");
  50.  
  51.   /*bucle para escribir en el fichero */
  52.   for (c = 0; c < MAX; ++c)
  53.     {
  54.       for (d = 0; d < MAX; ++d)
  55.     fprintf (s, "%d ", sum[c][d]);
  56.     }
  57.  
  58.   fclose (s);
  59.  
  60.   /*Abrimos el fichero en el que almacenamos el producto de las matrices */
  61.   m = fopen ("producto.txt", "w");
  62.  
  63.   /*bucle para multiplicar */
  64.   for (e = 0; e < MAX; ++e)
  65.     {
  66.       for (h = 0; l < MAX; ++h)
  67.     produc[e][h] = matriz1[e][h] * matriz2[e][h];
  68.     }
  69.  
  70.   /*bucle para escribir en fichero */
  71.   for (g = 0; g < MAX; ++g)
  72.     {
  73.       for (o = 0; o < MAX; ++o)
  74.     fprintf (m, "%d ", produc[g][o]);
  75.     }
  76.   fclose (m);
  77.  
  78.   return 0;
  79. }