// ConsoleApplication20.cpp : Defines the entry point for the console applicatio n. // #include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { //declaracion de variables float matrizA[50][50]; float matrizB[50][50]; float matrizC[50][50]; int i, j, k, numfa, numca, numfb, numcb, opcion, flag; flag = 0; //Ingreso de la dimension de la matriz A printf("Ingrese el numero de filas de la matriz A\n"); scanf_s("%d", &numfa); printf("Ingrese el numero de columnas de la matriz A\n"); scanf_s("%d", &numca); //Ingreso de las matrices A printf("Ingresa la matriz A\n"); for (i = 0; i < numfa; i++) { for (j = 0; j < numca; j++) { printf("Ingrese el elemento A %d - %d \n", i, j); scanf_s("%f", &matrizA[i][j]); } } //Ingreso de la dimension de la matriz B printf("Ingrese el numero de filas de la matriz B\n"); scanf_s("%d", &numfb); printf("Ingrese el numero de columnas de la matriz B\n"); scanf_s("%d", &numcb); //Ingreso de la matriz B printf("Ingresa la matriz B\n"); for (i = 0; i < numfb; i++) { for (j = 0; j < numcb; j++) { printf("Ingrese el elemento B %d - %d \n", i, j); scanf_s("%f", &matrizB[i][j]); } } //Menu de opciones printf("\n"); printf("Elija una opcion \n"); printf("1: suma\n"); printf("2: resta\n"); printf("3: multiplicacion\n"); printf("4: division\n"); scanf_s("%d", &opcion); printf("\n");
switch (opcion) { case 1: if (numfa == numfb && numca == numcb) { for (i = 0; i < numfa; i++) { for (j = 0; j < numcb; j++) { matrizC[i][j] = matrizA[i][j] + matrizB[ i][j]; } } } else { for (i = 0; i < numfa; i++) { for (j = 0; j < numcb; j++) { matrizC[i][j] = -9999; } } flag = 1; } break; case 2: if (numfa == numfb && numca == numcb) { for (i = 0; i < numfa; i++) { for (j = 0; j < numcb; j++) { matrizC[i][j] = matrizA[i][j] - matrizB[ i][j]; } } } else { for (i = 0; i < numfa; i++) { for (j = 0; j < numca; j++) { matrizC[i][j] = -9999; } } flag = 1; } break; case 3: if (numca == numfb)
{ for (i = 0; i < numfa; i++) { for (j = 0; j < numcb; j++) { matrizC[i][j] = 0; for (int k = 0; k < numca; k++) { matrizC[i][j] = matrizC[i][j] + matrizA[i][k] * matrizB[k][j]; } } } } else { for (i = 0; i < numfa; i++) { for (j = 0; j < numcb; j++) { matrizC[i][j] = -9999; } } flag = 2; } break; case 4: if (numfa == numfb && numca == numcb) { for (i = 0; i < numfa; i++) { for (j = 0; j < numcb; j++) { if (matrizB[i][j] == 0) { matrizC[i][j] = -9999; } else { matrizC[i][j] = matrizA[i][j] / matrizB[i][j]; } } } flag = 3; } else { for (i = 0; i < numfa; i++) { for (j = 0; j < numcb; j++) { matrizC[i][j] = -9999; } } flag = 1;
} break; default: printf("ERROR DE OPCION \n"); break; } //Impresion de la Matriz A printf("Matriz A \n"); printf("\n"); for (i = 0; i < numfa; i++) { for (j = 0; j < numca; j++) { printf("%5.2f \t", matrizA[i][j]); } printf("\n"); } printf("\n"); //Impresion de la Matriz B printf("Matriz B\n"); printf("\n"); for (i = 0; i < numfb; i++) { for (j = 0; j < numcb; j++) { printf("%5.2f \t", matrizB[i][j]); } printf("\n"); } printf("\n"); //Bandera if (flag == 1) { printf("Para realizar la suma, la resta o la divison de matrices \n el numero de fila y columnas deben ser igual \n es decir la misma dimension de ambas matrices \n"); } else { if (flag == 2) { printf("Para realizar la multiplicacion de matrices \n l a dimension de las columnas de la primera matriz \n debe ser igual a la dimensio n de las filas de la segunda matriz \n"); } else { if (flag==3) { printf("Recuerda que la division para cero no ex iste \n"); } }
} printf("Matriz Resultante\n"); printf("\n"); for (i = 0; i < numfa; i++) { for (j = 0; j < numcb; j++) { printf("%5.2f \t", matrizC[i][j]); } printf("\n"); } getchar(); getchar(); return 0; }