Foros del Web » Programación para mayores de 30 ;) » C/C++ »

problema con suma de matrices en C

Estas en el tema de problema con suma de matrices en C en el foro de C/C++ en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 10/05/2012, 12:45
 
Fecha de Ingreso: mayo-2012
Mensajes: 60
Antigüedad: 12 años, 6 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. }
  #2 (permalink)  
Antiguo 10/05/2012, 14:42
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 7 meses
Puntos: 228
Respuesta: problema con suma de matrices en C

Fiajte que cuando cargas la matriz por teclado en los for usas dos variables que son distintas en los indice de la matriz:

Código C:
Ver original
  1. for (k = 0; k < MAX; ++k)
  2.     {
  3.       for (l = 0; l < MAX; ++l)
  4.     {
  5.       printf ("Introduce los valores de la matriz:\n");
  6.       scanf ("%d", &matriz2[i][j]);
  7.     }
  8.     }


Deberia Ser:


Código C:
Ver original
  1. for (k = 0; k < MAX; ++k)
  2.     {
  3.       for (l = 0; l < MAX; ++l)
  4.     {
  5.       printf ("Introduce los valores de la matriz:\n");
  6.       scanf ("%d", &matriz2[k][l]);
  7.     }
  8.     }
  #3 (permalink)  
Antiguo 10/05/2012, 14:56
 
Fecha de Ingreso: mayo-2012
Mensajes: 60
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: problema con suma de matrices en C

muchas gracias lo probaré y te diré!!
  #4 (permalink)  
Antiguo 10/05/2012, 15:20
 
Fecha de Ingreso: mayo-2012
Mensajes: 60
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: problema con suma de matrices en C

vale modifiqué eso que me dijiste, y me calcula la suma bien creo. pero el producto me lo hace mal
  #5 (permalink)  
Antiguo 10/05/2012, 15:36
 
Fecha de Ingreso: mayo-2012
Mensajes: 60
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: problema con suma de matrices en C

encontré el otro error compañero, era un l donde tenia que haber un h
jajajaja
muchas gracias!!
  #6 (permalink)  
Antiguo 11/05/2012, 15:11
 
Fecha de Ingreso: diciembre-2011
Ubicación: Crespo - Entre Rios
Mensajes: 155
Antigüedad: 12 años, 11 meses
Puntos: 25
Respuesta: problema con suma de matrices en C

igualmente tenes que revisar la parte donde multiplicas las matrices, no se hace de la misma manera que la suma..... aqui te dejo unos links donde se explica como se multiplican las matrices:

wikipedia

video en youtuve de JulioProfe, muy bien explicado

saludos

Etiquetas: ficheros, lenguaje, matrices, operaciones, producto, programacion, suma
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:29.