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

30. Să se localizeze elementul maxim şi toate elementele dinaintea lui să se ordoneze crescător, iar cele de după el, descrescător, afişându-se rezultatul.
În c++​

Răspunsuri la întrebare

Răspuns de andrei750238
3

#include <iostream>

using namespace std;

int main(){

int n, i, mx,v[100];

   //Citire date

   cin >> n;

   for(i=1;i<=n;i++) cin >> v[i];

   //Determinare pozitie maxim

   mx=1;

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

       if(v[i]>v[mx])mx=i;

   //Sortare crescatoare

   bool ok=1;

   while(ok){

       ok=0;

       for(i=1;i<mx-1;i++){

           if(v[i]>v[i+1]){

               swap(v[i],v[i+1]);

               ok=1;

           }

       }

   }

   //Sortare descrescatoare

   ok=1;

   while(ok){

       ok=0;

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

           if(v[i]<v[i+1]){

               swap(v[i],v[i+1]);

               ok=1;

           }

       }

   }

   //Afisare rezultat

   for(i=1;i<=n;i++) cout << v[i] << " ";

}

Anexe:
Alte întrebări interesante