/******************************************************************************
Welcome to GDB Online.
GDB online is an online compiler and debugger tool for C, C++, Python, Java, PHP, Ruby, Perl,
C#, OCaml, VB, Swift, Pascal, Fortran, Haskell, Objective-C, Assembly, HTML, CSS, JS, SQLite, Prolog.
Code, Compile, Run and Debug online from anywhere in world.
*******************************************************************************/
#include <iostream>
using namespace std;
int main()
{
cout<<"Hello World";
return 0;
}
// 2.cpp
#include <iostream>
#include <iomanip>
using namespace std;
void llenarMatriz(int **ptr,int nfil,int ncol);
void mostrarMatriz(int **ptr,int nfil,int ncol);
void liberaMemoria(int **ptr,int nfil);
int minfila(int i,int **ptr,int ncol);
int maxcol(int j,int **ptr,int nfil);
int valminmax(int **ptr,int nfil,int ncol);
int main(void){
int nfil,ncol;
int **ptr;
cout<<"Dimension de la matriz: ";
cin>>nfil>>ncol;
//iii.Reservar memoria dinamicamente para ptr
ptr= new int*[nfil];
for (int f=0;f<nfil;f++)
ptr[f]= new int[ncol];
llenarMatriz(ptr,nfil,ncol);
cout<<"Matriz ingresada\n";
mostrarMatriz(ptr,nfil,ncol);
int p=valminmax(ptr,nfil,ncol);
if (p>=2)
cout<<"Matriz con zona plana\n";
else
if (p==1)
cout<<"Matriz con un punto silla de montar\n";
else
cout<<"Matriz no tiene punto silla de montar\n";
liberaMemoria(ptr,nfil);
}
int valminmax(int** ptr,int nfil,int ncol){
int cnt=0,minmax;
for (int i=0;i<nfil;i++)
for (int j=0;j<ncol;j++)
if ( ptr[i][j]==minfila(i,ptr,ncol) && ptr[i][j]==maxcol(j,ptr,nfil) ){
minmax=ptr[i][j];
cnt++;
}
if (cnt>0)
cout<<"El valor minmax es "<<minmax<<"\naparece: "<<cnt<<" veces"<<endl;
return cnt;
}
int maxcol(int j,int** ptr,int nfil){
int mayor=ptr[0][j];
for (int i=0;i<nfil;i++)
if (ptr[i][j]>mayor)
mayor=ptr[i][j];
return mayor;
}
int minfila(int i,int** ptr,int ncol){
int menor=ptr[i][0];
for (int j=0;j<ncol;j++)
if (ptr[i][j]<menor)
menor=ptr[i][j];
return menor;
}
void mostrarMatriz(int **ptr,int nfil,int ncol){
for (int i=0;i<nfil;i++){
for (int j=0;j<ncol;j++)
cout<<setw(8)<<ptr[i][j];
cout<<endl;
}
}
void llenarMatriz(int **ptr,int nfil,int ncol){
cout<<"Ingrese los valores de la matriz\n";
for (int i=0;i<nfil;i++){
cout<<"Ingrese "<<ncol<<" datos para la fila "<<i+1<<": ";
for (int j=0;j<ncol;j++)
cin>>ptr[i][j];
}
}
void liberaMemoria(int **ptr,int nfil){
for (int i=0;i<nfil;i++)
delete[] ptr[i];
delete[] ptr;
}