Valor máximo, valor mínimo y su intercambio Programación en C++
#include
usando el espacio de nombres std;
const int get_maxid(int *a,int n) //Obtiene el subíndice del valor máximo
{
int max_id=0; //El subíndice utilizado para registrar el valor máximo
for(int i=1;i!=n;+ + i)
if(*(a+i)>*(a+max_id))
max_id=i;
return max_id;
}
const int get_minid(int *a,int n) //Obtener el subíndice del valor mínimo
{
int min_id= 0; //El subíndice utilizado para registrar el valor mínimo
for(int i=1;i!=n;++i)
if(*(a+i) <* (a+min_id))
min_id=i;
return min_id;
}
void Change_MaxAndMin(int *a ,int n)
{
int t;
t=*(a+get_maxid(a,n));
*( a+get_maxid(a,n))=*(a+(n-1));
*(a+(n-1))=t //Llamar directamente a una función escrita previamente en obtener el máximo El subíndice del valor e intercambiarlo con el último elemento
t=*(a+get_minid(a,n));
*(a+get_minid(a ,n) ))=*a;
*a=t; //Llama directamente a una función escrita anteriormente para obtener el subíndice del valor mínimo e intercambiarlo con el primer elemento
}
void main()
{
int n;
cout<<"Ingrese el tamaño de la matriz:" ;
cin>>n;
int *a=new int[n]; //Crea la primera dirección de una matriz de tamaño n
cout <<"Iniciar entrada: "< for(int i=0;i!=n;++i) cin>>*(a+i) ; cout<<"Valor máximo:"<<*(a+get_maxid(a,n))<<"Subíndice:"< cout<<"Valor mínimo:"<<*(a+get_minid(a,n))<<"Subíndice:"< Change_MaxAndMin( a,n); cout<<"Matriz modificada:"< for(int i=0;i!=n;++i) cout<<*(a+i)<<" "; }