Ejercicio taller
unknown
c_cpp
a month ago
2.0 kB
6
Indexable
/*Desarrollar una función que determine si una matriz es simétrica o no. En caso de no ser simetrica, que cree su matriz traspuesta. Una matriz es simetrica: - La matriz debe ser cuadrada. - Aij = Aji |2 5 9| |2 5 9| |5 8 -1| -> |5 8 -1| |9 -1 10| |9 -1 10| La matriz traspuesta es aquella en la que la columna i era la fila i de la matriz original. |1 2 3| |1 4 7| |4 5 6| --> |2 5 8| |7 8 9| |3 6 9| */ #include<iostream> using namespace std; void PedirDatos (int [100][100], int&, int&); void Simetria(int [100][100], int, int); void MostrarMatriz(int [100][100], int, int); void Traspuesta(int [100][100], int, int); int main(){ int Matriz[100][100], NF, NC; PedirDatos (Matriz, NF, NC); MostrarMatriz(Matriz, NF, NC); Simetria(Matriz, NF, NC); return 0; } void PedirDatos (int m[100][100], int& F, int& C){ cout<<"Digite el numero de filas: "; cin>>F; cout<<"Digite el numero de columnas: "; cin>>C; cout<<endl; //Pedimos todos los elementos de la matriz for(int i=0; i<F; i++){ for(int j=0; j<C; j++){ cout<<"Digite m["<<i<<"]["<<j<<"]: "; cin>>m[i][j]; } } cout<<endl; } void Simetria(int m[100][100],int F,int C){ int cont = 0; //Si es cuadrada if(F==C){ //y ademas si Aij = Aji for(int i=0; i<F; i++){ for(int j=0; j<C; j++){ if(m[i][j]==m[j][i]){ cont++; } } } } //El conteo debe ser igual al numero de elementos de la matriz if(cont == F * C){ cout<<"\nLa matriz es Simetrica"<<endl; } else{ cout<<"\nLa matriz NO es simetrica"<<endl; Traspuesta(m, F, C); } } void MostrarMatriz(int m[100][100],int F,int C){ cout<<"\nMatriz Ingresada\n"; for(int i=0; i<F; i++){ for(int j=0; j<C; j++){ cout<<"["<<m[i][j]<<"] "; } cout<<endl; } } void Traspuesta(int m[100][100], int F, int C){ cout<<"\nMatriz Transpuesta\n"; for(int i=0; i<C; i++){ for(int j=0; j<F; j++){ cout<<"["<<m[j][i]<<"] "; } cout<<endl; } }
Editor is loading...
Leave a Comment