
#include <stdio.h>
int main(int argc, char** args){
int af, ac, bf, bc, i, j, k;
printf("Numero de renglonesde la matriz A-->");
scanf("%d", &af);
printf("Numero de columnas de la matriz A-->");
scanf("%d", &ac);
printf("Numero de renglones de la matriz B-->");
scanf("%d", &bf);
printf("Numero de columnas de la matriz B-->");
scanf("%d", &bc);
if(ac!=bf){
printf("no es posible hacer la multiplicación\n");
system("pause");
return 0;
}
int A[af][ac], B[bf][bc], C[af][bc]; /*Rutina para cargar los valores*/
for(i=0;i<af;i++){
for(j=0;j<ac;j++){
printf("Escribe el valor de la matriz 1 (%d, %d)-->",i+1, j+1);
scanf("%d", &A[i][j]);
}
}
printf("\n\n");
for(i=0;i<bf;i++){
for(j=0;j<bc;j++){
printf("Escribe el valor de la matriz 2 (%d, %d)-->", i+1, j+1);
scanf("%d", &B[i][j]);
}
}
for(i=0;i<af;i++){
for(j=0;j<bc;j++){
C[i][j]=0;
for(k=0;k<ac;k++){
C[i][j]=(C[i][j]+(A[i][k]*B[k][j]));
}
}
}
/*Rutina para imprimir*/
printf("\n\n\t\t\t Matriz A");
printf("\n");
for(i=0;i<af;i++){
printf("\n\t\t");
for(j=0;j<ac;j++){
printf(" %6d ", A[i][j]);
}
}
printf("\n\n\t\t\t Matriz B");
printf("\n");
for(i=0;i<bf;i++){
printf("\n\t\t");
for(j=0;j<bc;j++){
printf(" %6d ", B[i][j]);
}
}
printf("\n\n\t\t\t Matriz C");
printf("\n");
for(i=0;i<af;i++){
printf("\n\t\t");
for(j=0;j<bc;j++){
printf(" %6d ", C[i][j]);
}
}
printf("\n");
}
Ejecución:

Y el método Montante, este es un código que empecé el semestre pasado, hoy lo retomé y lo he podido concluir :D, este es el código:
#include<stdio.h>
#include <stdlib.h>
#define R 3
#define C 4
int main (void){
int i, j, num[R][C], matriz[R][C], pivote, pivant = 1, iteracion = 0;
//Lectura
for(i=0;i<R;i++){
for(j=0;j<C - 1;j++){
printf("Los valores de la matriz [%d,%d]= ",i + 1, j + 1);
scanf("%d",&matriz[i][j]);
}
printf("El costo fue----------------> ");
scanf("%d",&matriz[i][j]);
}
while(iteracion < R) {
pivote = matriz[iteracion][iteracion];
for(i=0;i<C;i++) {
num[iteracion][i] = matriz[iteracion][i];
}
for(i=0;i<R;i++) {
if(iteracion != i) {
num[i][iteracion] = 0;
}
}
for(i=0;i<R;i++){
for(j=0;j<C;j++){
if(i != iteracion) {
if( j!= iteracion) {
num[i][j] = (((matriz[i][j] * pivote) - (matriz[iteracion][j] * matriz[i][iteracion])) / pivant);
}
}
}
}
iteracion++;
pivant = pivote;
for(i=0;i<R;i++) {
for(j=0;j<C;j++) {
matriz[i][j] = num[i][j];
}
}
}
printf("\n\n\n\n");
for(i=0;i<R;i++){
printf("\t\t");
for(j=0;j<C - 1;j++){
printf("\t%d",matriz[i][j]);
}
printf("\t= %d\n", matriz[i][j]);
}
return 0;
}
Ejecución:

Cualquier duda sobre alguna línea o sugerencia comenten con confianza :D
Dos días más para completar entradas. El lunes a las 8:30 es el corte.
ResponderEliminarEn lab ya completaste cien. En la clase puedes todavía acumular puntos extra.
ResponderEliminar+3 en clase
ResponderEliminarMuchas gracias por el código nos ayudo a mi amigo y a mi con una tareita que teniamos.
ResponderEliminarque bien que te ayudó :D
ResponderEliminarMe has salvado la vida mi cerebro se estaba secando mas de 12 horas tratando de hacer el primero ya son las 2: 35 am y mañana tengo clases a las 6 . _ .' GRACIASSS :D ire a dormir!!!
ResponderEliminarEste comentario ha sido eliminado por el autor.
Eliminar:D
ResponderEliminarCecilia, les has salvado la vida, a unos compañeros, saludos :D
ResponderEliminarMuchas gracias!! podria besarte por esto, le salvaste la vida a mi equipo (cambie tu implementacion a java y genere una forma de aceptar los puntos dinamicamente detectando puntos iguales, si lo ocupas contactame)
ResponderEliminarESTA MUY BIEN TU CODIGO PERO YO TENGO UN PROBLEMA COMO SE HARIA PERO CON PUNTEROS TE LO AGRDECERIA
ResponderEliminara perdon sin corchetes[][]
ResponderEliminarte llamas cecilia???,,,,, bonito nombre ^^
ResponderEliminarGracias de vdd que no encontraba la forma de hacerlo jajaja gracias
ResponderEliminarOye una pregunta, en el primer código, la variable k, cual fue el uso que le diste?
ResponderEliminaryo te puedo responder esa pregunta.., ya que K es el valor de i en la primera matriz y de j en la segunda. tienen que variar(contabilizar) para efectuar su multiplicación y suma ... :) espero lo entiendas...!!!
Eliminarpuedes explicar la parte del algoritmo por que k
ResponderEliminarHola!!!
ResponderEliminar¿Quería preguntarte si por casualidad has realizado algún código en C++ para obtener la inversa de una matriz?
Holaa! :D te dieron alguna solucion a tu pregunta?? tienes el codigo? jajaja
EliminarCecilia eres la JEFA !!!!!!
ResponderEliminarOye el resultado de la multiplicación no me sale bien donde lo chequeo ?
ResponderEliminarGracias por el aporte, me sirvio de mucho!
ResponderEliminar:v
ResponderEliminarGracias por el aporte :)
ResponderEliminardisculpen me pueden ayudar con este programa en c
ResponderEliminarEl producto de una Matriz por un escalar en el cual el usuario elija el tamaño y el escalar
oyes yo no entiendo esta línea
ResponderEliminarprintf("El costo fue----------------> ");
scanf("%d",&matriz[i][j]);
como saca el resultado de
El costo fue-------------------> 32
Indica el igual de la primera fila
EliminarBro muchas gracias, te mereces un 20 de 10
ResponderEliminarI:\MultiMatrMetodomontante.cpp In function 'int main(int, char**)':
ResponderEliminarBuen código bro
ResponderEliminarMe has salvado el trasero xd
En lugar de la condición IF donde preguntas que si el numero de columnas es diferentes al numero de filas puedes ponder una condicion do-while hasta que el no de columnas sea igual al numero de filas y así no pausas el sistema
ResponderEliminarYo tambien soy ITS en la UANL y me acabas de salvar el semestre, te amooooooooooooooooooooooooooooooooooooooooooooooooooo
ResponderEliminar