Descripción:
Desarrollar una función que determine si una matriz es simétrica o no. Se considera que una matriz es simétrica si es igual a su traspuesta.
Condiciones:
- La matriz debe ser cuadrada (número de filas igual al número de columnas).
- Aij = Aji para cada elemento de la matriz.
Código:
```cpp
#include
#include
using namespace std;
// Prototipos de función
void pedirDatosM();
void mostrarM();
void determinarSimatriaM();
// Variables globales
int matriz[100][100], num_renglones, num_columnas;
int main(){
pedirDatosM();
mostrarM();
determinarSimatriaM();
cout<<"\n";
system("pause");
return 0;
}
void pedirDatosM(){
cout<<"Digite el numero de renglones de la matriz: "; cin>>num_renglones;
cout<<"Digite el numero de columnas de la matriz: "; cin>>num_columnas;
for(int i = 0; i < num_renglones; i++){
for(int j = 0; j < num_columnas; j++){
cout<<"Digite un numero para la posicion ["<<i<<"]["<<j<<"]: "; cin>>matriz[i][j];
}
}
}
void mostrarM(){
cout<<"\nLa matriz ingresada es: "<<endl;
for(int i = 0; i < num_renglones; i++){
for(int j = 0; j < num_columnas; j++){
cout<<matriz[i][j]<<" ";
}
cout<<"\n";
}
}
void determinarSimatriaM(){
int contador = 0;
if(num_renglones == num_columnas){
for(int i = 0; i < num_renglones; i++){
for(int j = 0; j < num_columnas; j++){
if(matriz[i][j] == matriz[j][i]){
contador++;
}
}
}
}
if(contador == (num_renglones * num_columnas)){
cout<<"\nLa matriz SI es simetrica";
}
else{
cout<<"\nLa matriz NO es simetrica";
}
}
```
Ejemplo de Uso:
Digite el numero de renglones de la matriz: 2
Digite el numero de columnas de la matriz: 2
Digite un numero para la posicion [0][0]: 4
Digite un numero para la posicion [0][1]: 3
Digite un numero para la posicion [1][0]: 3
Digite un numero para la posicion [1][1]: 1
La matriz ingresada es:
4 3
3 1
La matriz SI es simetrica
Presione una tecla para continuar . . .