#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
int main()
{ printf(" ** CALCULADORA DE MATRICES **\n************************************\n\n"); int filaA, columA, filaB, columB, filaF, columF;
printf(" Se realizara una operacion entre dos matrices a definir.\n"); printf(" A continuacion, introduzca la dimension de ambas matrices: \n\n"); printf(" Matriz A:\n - Nº filas: "); scanf(" %d", &filaA); printf(" - Nº columnas: "); scanf(" %d", &columA); printf("\n Matriz B:\n - Nº filas: "); scanf(" %d", &filaB); printf(" - Nº columnas: "); scanf(" %d", &columB); int i, j, k, k1, k2, k3;
filaF = filaA;
columF = columB;
int vector_A[filaA+1][columA+1], vector_B[filaB+1][columB+1], vector_F[filaF+1][columF+1];
printf("\n\n Ahora, introduzca los valores de las matrices:\n\n Matriz A:\n ------- \n\n"); for(i=0;i<filaA;i++)
{ for(j=0;j<columA;j++)
{ printf(" Valor en la fila %d, columna %d: ", i+1, j+1); scanf(" %d", &k); vector_A[i][j] = k;
}
printf("\n"); }
k=0;
printf("\n\n Matriz B:\n ------- \n\n"); for(i=0;i<filaB;i++)
{ for(j=0;j<columB;j++)
{ printf(" Valor en la fila %d, columna %d: ", i+1, j+1); scanf(" %d", &k); vector_B[i][j] = k;
}
printf("\n"); }
k=0;
int w1=0, w2, w3=0, w4, w5=0, w6, w7=0;
printf("\n\n Elija que operacion quiere realizar entre estas matrices:"); if((filaA==filaB) && (columA==columB))
{ printf("\n 1.- Suma\n 2.- Resta"); }
if(filaB==columA)
{ printf("\n 3.- Producto"); }
printf("\n Respuesta: "); while((k!=1) || (k!=2) || (k!=3))
{ scanf(" %d", &k); switch(k)
{ case 1:
{ if((filaA==filaB) && (columA==columB))
{ for(i=0;i<filaA;i++)
{ for(j=0;j<columA;j++)
{ k1 = vector_A[i][j];
k2 = vector_B[i][j];
vector_F[i][j] = (k1+k2);
}
}
printf("\n\n Su matriz final es la siguiente:\n\n"); for(i=0;i<filaA;i++)
{ for(j=0;j<columA;j++)
{ k3 = vector_F[i][j];
printf(" Valor en la fila %d, columna %d: %d", i+1, j+1, k3); printf("\n"); }
printf("\n"); }
return 0;
}
else
{ printf("\n\n No entiendo tu eleccion. Prueba otra vez."); k=0;
printf("\n Selecciona una operacion: "); }
break;
}
case 2:
{ if((filaA==filaB) && (columA==columB))
{ for(i=0;i<filaA;i++)
{ for(j=0;j<columA;j++)
{ k1 = vector_A[i][j];
k2 = vector_B[i][j];
vector_F[i][j] = (k1-k2);
}
}
printf("\n\n Su matriz final es la siguiente:\n\n"); for(i=0;i<filaA;i++)
{ for(j=0;j<columA;j++)
{ k3 = vector_F[i][j];
printf(" Valor en la fila %d, columna %d: %d", i+1, j+1, k3); printf("\n"); }
printf("\n"); }
return 0;
}
else
{ printf("\n\n No entiendo tu eleccion. Prueba otra vez."); k=0;
printf("\n Selecciona una operacion: "); }
break;
}
case 3:
{ if(columA==filaB)
{ do
{ for(i=0;i<columA;i++)
{ w2 = vector_A[w3][i];
w4 = vector_B[i][w5];
w6 = w2*w4;
w7 = (w6+w7);
}
vector_F[w3][w5] = w7;
w7 = 0;
w1++;
w5++;
if(w5>columB)
{ w3++;
w5 = 0;
}
}
while(w1 <= ((filaA*columB)+2));
printf("\n"); for(i=0;i<filaA;i++)
{ for(j=0;j<columB;j++)
{ k3 = vector_F[i][j];
printf(" Valor en la fila %d, columna %d: %d", i+1, j+1, k3); printf("\n"); }
printf("\n"); }
return 0;
}
else
{ printf("\n\n No entiendo tu eleccion. Prueba otra vez."); k=0;
printf("\n Selecciona una operacion: "); }
break;
}
default:
{ printf("\n\n No entiendo tu eleccion. Prueba otra vez. Selecciona una operacion: "); break;
}
}
}
return 0;
}
Comentarios sobre la versión: 20171114 (2)