Informatică, întrebare adresată de arcq123, 8 ani în urmă

creati un program care sorteaza elementele situate intre elementul minim si maxim dintre vectorii de numere intregi. daca minimul si maximul se afla pe pozitii consecutive, sa ca afisa mesajul "nu se efectueaza sortarea". pentru n=7 si v=14 13 21 1 120 1000 21 se va afisa 14 -13 1 21 120 1000 21


Daniel4761: Si daca intre minim si maxim exista un singur element?
Daniel4761: Sortarea se face cu tot cu minimul si maximul? Sau fara ele?

Răspunsuri la întrebare

Răspuns de Daniel4761
2

#include <iostream>

using namespace std;

int main()

{

int A[25], n, i, j, aux, max, min, pmin, pmax, p1, p2;

cout<<"n="; cin>>n;

for(i=1;i<=n;i++)

{

 cout<<"A["<<i<<"]="; cin>>A[i];

}

max=A[1]; min=A[1]; pmin=1; pmax=1;

for(i=2;i<=n;i++)

 if(A[i]<min){

  min=A[i]; pmin=i;

 }

for(i=2;i<=n;i++)

 if(A[i]>max){

  max=A[i]; pmax=i;

 }

p1=pmax; p2=pmin;

if(p1>p2){

 aux=p1; p1=p2; p2=aux;

}

if(p2-p1==1) cout<<"Nu se efectueaza sortarea";

else{

 for(i=p1+1;i<p2-1;i++)

  for(j=i+1;j<p2;j++)

   if(A[i]>A[j]){

    aux=A[i]; A[i]=A[j]; A[j]=aux;

   }

 for(i=1;i<=n;i++)

  cout<<A[i]<<' ';

}

return 0;

}

Alte întrebări interesante