#include <stdio.
h>
#include <stdlib.h>
#include <string.h>
void sumaMatrices(int n, int mat1[]
[n], int mat2[][n], int resultado[][n])
{
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
resultado[i][j] = mat1[i][j] +
mat2[i][j];
}
}
}
void restaMatrices(int n, int mat1[]
[n], int mat2[][n], int resultado[][n])
{
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
resultado[i][j] = mat1[i][j] -
mat2[i][j];
}
}
}
void multiplicacionMatrices(int n, int
mat1[][n], int mat2[][n], int
resultado[][n]) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
resultado[i][j] = 0;
for (int k = 0; k < n; k++) {
resultado[i][j] += mat1[i]
[k] * mat2[k][j];
}
}
}
}
void imprimirMatriz(int n, int
matriz[][n]) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", matriz[i][j]);
}
printf("\n");
}
}
int main(int argc, char *argv[]) {
int n;
printf("Ingrese el tamaño de las
matrices (n x n): ");
scanf("%d", &n);
int mat1[n][n], mat2[n][n],
resultado[n][n];
printf("Ingrese los elementos de
la primera matriz:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &mat1[i][j]);
}
}
printf("Ingrese los elementos de
la segunda matriz:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &mat2[i][j]);
}
}
if (strcmp(argv[1], "suma") == 0)
{
sumaMatrices(n, mat1, mat2,
resultado);
printf("Resultado de la suma:
\n");
} else if (strcmp(argv[1], "resta")
== 0) {
restaMatrices(n, mat1, mat2,
resultado);
printf("Resultado de la resta:
\n");
} else if (strcmp(argv[1],
"multiplicacion") == 0) {
multiplicacionMatrices(n, mat1,
mat2, resultado);
printf("Resultado de la
multiplicación:\n");
} else {
printf("Operación no válida.
Use 'suma', 'resta' o
'multiplicacion'.\n");
return 1;
}
imprimirMatriz(n, resultado);
return 0;
}