/*
  Ejercicio # 1
  Nombre: Matriz Inversa
  Autor: Carlos Rolando Calán Ajquill
  Fecha: 24/06/06 00:45
  Descripción: Programa que recibe de parametros cuantas filas y columnas va a tener
  la matriz para luego ordernarlas y mostrarlas a pantalla. 
  Versión: 1.0 
*/
#include <cstdlib>
#include <iostream>
using namespace std;
//Variables que contendra la cantidad de filas y columnas de la matriz
int intF = 0,  intC = 0;
//Variables que contendra la cantidad de filas y columnas de la matriz
int f = 0, c = 0;
int cc = 0;
int FilaCambio = 0;

int main(int argc, char *argv[])
{
    
  system("CLS");
  cout<<"\t \t \t UNIVERSIDAD MARIANO GALVEZ \n \n"; 
  cout<<"\t \t Proyecto Final Estructura De Datos \n";    
  cout<<"\t \t Carlos Rolando Calan Ajquill    Junio/2006 \n";
  cout<<"\t \t Carne: 0910-04-13429         5to. Semestre \n";
  cout<<"\t \t ------------------------------------------------\n";    
  cout<<"\t \t Matriz Inversa \n ";
  cout<<"\t \t ------------------------------------------------\n\n";    	
  cout<<"Ingrese la Cantidad de Filas de la Matriz:  \t";
  cin>>intF;
  cout<<"Ingrese la Cantidad de Columnas de la Matriz:  \t";
  cin>>intC;        
  int Matriz[intF][intC];
  int MatrizCambio[intF][intC];
  cout<<"\n";
  for (f=0;f<=intF-1;f++)    
  {  
    for (c=0;c<=intC-1;c++)
    {
      cout<<"Ingrese los valores de la Fila "<<f<<" Columna "<<c<<" ->\t";
      cin>>Matriz[f][c];
    }
  } 
  cc = 0;
  cout<<"\n";     
  cout<<"Matriz Ordenada de "<<intF<<" X "<<intC;
  cout<<"\n \n";   
  for (f=0;f<=intF-1;f++)    
  {               
    for (c=0;c<=intC-1;c++)
    {     
      if (cc > c)
      {          
        cc = 0;
        cout<<"\n";
        cout<<Matriz[f][c]<<"\t";                   
      }
      else
      {
        cout<<Matriz[f][c]<<"\t";
      }        
      cc++;
    }
  } 
  cout<<"\n \n";       
  cout<<"Intercambio de Filas \t";
  for (f=0; f<intF; f++)
  {
	  for (c=0; c<intC; c++)
    {
	    MatrizCambio[(intF-f)-1][c] = Matriz[f][c];
    }
  }
  cc = 0;
  cout<<"\n";     
  cout<<"Matriz Ordenada Inversamente "<<intF<<" X "<<intC;
  cout<<"\n \n";   
  for (f=0;f<=intF-1;f++)    
  {               
    for (c=0;c<=intC-1;c++)
    {     
      if (cc > c)
      {          
        cc = 0;
        cout<<"\n";
        cout<<MatrizCambio[f][c]<<"\t";                   
      }
      else
      {
        cout<<MatrizCambio[f][c]<<"\t";
      }        
      cc++;
    }
  } 
  cout<<"\n \n";     
  system("PAUSE");
  return EXIT_SUCCESS;
}