| Death_scythe |
| Junior, recien llegado |

 |
| |
| Registrado: Apr 29, 2006 |
| Mensajes: 19 |
| Ubicación: In a galaxy far, far away... |
|
|
 |
 |
 |
|
Supongo que ha de ser algo sencillo, pero apenas estoy empezando en lenguaje C, tengo una tarea... y me ha dado un poco de problemas
tengo que escribir un programa que multiplique matrices (algebraicas)
el programa esta hecho con "arreglos multidimencionales"
Ya tengo escrito el codigo para solicitar el tamaño de las matrices y el amacenaje de los datos de estas... el problema es que no logro escribir la parte que multiblique las matrices A y B que es
C(i,j)= sumatoria A(i,k) x B(k,j)
dejo un seudo codigo de lo que tengo hecho
interfase con el usuario/ tamaño de matrices/ compueba que se pueda realizar la multiplicacion
Responder a este post Escribir respuesta con cita Editar/Borrar Posts Reportar post a un moderador Ir al inicio de esta página
copio casi todo el codigo, borrare lo que es "maquillaje", para aihorrar espacio
#include <stdio.h>
#include <graph.h>
void main (){
int A [10][10];
int B [10][10];
int C [10][10];
int filaA, columnaA;
int filaB, columnaB;
int f,c;
int i,j,k;
int mult=0;
int valor=0;
char continuar;
do {
do{
printf ("Digite el numero de filas de la matriz A:");
scanf ("%d", &filaA);
printf ("Digite el numero de columnas de la matriz A:");
scanf ("%d", &columnaA);
printf ("Digite el numero de filas de la matriz B:");
scanf ("%d", &filaB);
printf ("Digite el numero de columnas de la matriz B:");
scanf ("%d", &columnaB);
if (columnaA!=filaB)
printf ("Error: para multiplicar matrices las columnas de A deben ser iguales a las filas de B");
}while (columnaA!=filaB);
printf ("Digite los valores de la matriz A\n");
for (f=0; f<=(filaA-1); f++){
for (c=0; c<=((columnaA)-1); c++){
printf ("Digite el valor de la entrada A[%d][%d]:", f+1, c+1);
scanf ("%d", & A[f][c]);
}
}
printf ("Digite los valores de la matriz B\n");
for (f=0; f<=(filaB-1); f++){
for (c=0; c<=((columnaB)-1); c++){
printf ("Digite el valor de la entrada B[%d][%d]:", f+1, c+1);
scanf ("%d", & B[f][c]);
}
}
/* printf ("El resultado de la multiplicaci¢n de las matrices A y B es:\n");
for (k=0; k<=(columnaA-1); k++){
for (i=0; i<=((filaA)-1); i++){
for (j=0; j<=(columnaB-1); j++){
mult=A[i][k]*B[k][j];
valor=valor+mult;
}
//valor=valor+mult;
}
C[i][j]=valor;*/
}
for (f=0; f<=(columnaA-1); f++){ //con esto compruebo que las matrices esten bien
for (c=0; c<=((filaB)-1); c++){
printf ("B [%d][%d]: %d\n", f+1, c+1, B[f][c]);
}
}
printf ("-----------------------------------------------------\n");
printf ("Desea relizar otra multipliacacion (S/N):");
flushall ();
continuar=getchar ();
}while (continuar!='N' && continuar!='n');
}
lo que esta en negrita es lo que esta malo... y antes de que me regañen por trabajar desordenado... si trabajo ordenado, pero a la hora de ponerlo aqui me elimino los espacios XD |
|