Vous êtes sur la page 1sur 5

// 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;
}