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

suma de matrices en C

Estas en el tema de suma de matrices en C en el foro de C/C++ en Foros del Web. hola gente del foro... bueno mi problema es el siguiente. tengo que hacer el código para la suma, resta y multiplicación de dos matrices, pero ...
  #1 (permalink)  
Antiguo 18/10/2012, 14:38
 
Fecha de Ingreso: octubre-2012
Mensajes: 1
Antigüedad: 12 años
Puntos: 0
Pregunta suma de matrices en C


hola gente del foro...



bueno mi problema es el siguiente.

tengo que hacer el código para la suma, resta y multiplicación de dos matrices, pero me quede ahogado en una parte gracias a que desgraciadamente el profe que me enseña tiene la maña de escribir las sintaxis mal y nosotros corregirlas.

ahi esta el punto porque no se que hacer, ya busque en un libro pero nada.

bueno el codigo que llevo es el siguiente:

donde A, B son las matrices y C el resultado de la suma

Código:
#include <stdio.h>
void main(void) {
	
	 int n=0;
	 printf("ingrese el tamaño de la matriz\n");
	 scanf("%d", &n);

	 int A[n][n];
	 int B [n] [n];
	 int C [n] [n];


	 for (int i=0; i<=n; i+1) {
		printf("teclee el elemento:[%i][%j]\n", i+1);
		scanf("%d", A[i][j]);

		 for (int j=0; j<)n-1; j+1){
			 printf("teclee el elemento:[%i][%j]\n" j+1);
			 scanf("%d", A[i][j]);
		 }
	 }
		
}

quisiera saber que es lo que eh hecho mal, y como hacer para sumarla con la B...

sabiendo esto yo hago lo demas.
  #2 (permalink)  
Antiguo 19/10/2012, 04:13
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 12 años, 2 meses
Puntos: 83
Respuesta: suma de matrices en C

Tienes varias cosas que no estan bien, primero haz que el codigo compile correctamente y luego ya entraras en lo de sumas y restas y todo eso.

Por el titulo del post parece ser que estas programando en C, y la entrada al programa debe ser de tipo int (no void) y debido a eso debe retornar un numero de error del mismo tipo (0 si todo ok).

Luego, las declaraciones de variables en C tienes que hacerlas al inicio de la funcion (o de forma global externa, o en determinados casos puntuales puede mezclarse dentro del codigo pero este no es el caso), no puedes declarar una variable durante la llamada a un bucle tal como tienes hecho en 'for(int variable...'

Estas dos observaciones forman parte de la revision C99 (lo de int main creo que incluso es anterior); si tu compilador es muy antiguo y no se queja puedes omitirlo pero recuerda que esto no cumple con el estandar actual y ningun compilador actual te dejará hacerlo.

Luego tienes un error en la forma de mostrar variables por pantalla; el printf recibe una lista de argumentos formada por un texto formateado (o no) y una serie de referencias a los datos referidos en el formato. En tu caso quieres mostrar dos enteros 'i' y 'j', pero en la lista de referencias de valores solo envias la 'i' en el primer nivel y la 'j' en el segundo, aun cuando en ambos printf se esperan dos referencias: esto provocará que se cierre tu programa. Otra cosa, echa un vistazo a las representaciones de los formatos de tipo, p.ej. cuando quieres mostrar un entero es %d, una coma flotante es %f, etc (comprueba en tu codigo que tienes tipos %j que es un formato que no representa lo que esperas, realmente el %j es un modificador que especifica la longitud del tipo de dato referenciado siempre que vaya acompañando a un formato de tipo).

Otra cosa, el scanf espera una referencia a la memoria donde se guardará el dato leido pero tu le estas enviando una posicion del array desreferenciada (esto provocará que se cierre tu programa); para referenciar una variable tienes que marcarla con '&' (significa referencia) o tienes que haberla creado de forma dinamica bajo una declaracion de tipo '*' (esto ultimo no es tu caso).

En el momento de llenar la lista A, tienes que recorrerla (en principio no indicas de que forma, hay miles) p.ej. pensando que 'i' son las filas y 'j' las columnas; para cada 'i' recorres las columnas y solicitas el dato:

Código:
for(i = 0; i < n; i++) {
    for(j = 0; j < n; j++) {
        scanf...
    }
}
Cuando tengas el array lleno recorrelo de la misma forma para asegurarte que se ha llenado correctamente. Y una vez tengas todo eso sin errores ya podras seguir con las sumas y restas.

Saludos
vosk

Última edición por vosk; 19/10/2012 a las 04:18

Etiquetas: arrays, matrices, multiplicacion, resta, 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 16:37.