Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/10/2012, 04:13
vosk
 
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