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

Se cere să se scrie un program în C sau C++ pentru a rezolva problema următoare.


Se dă un număr natural n (1 <= n <= 1000). Se introduce de la tastatură un șir de numere reale: xi, i=1...n. Să se determine elementul minim din șir și să se reordoneze elementele șirului astfel încât elementele care apar în șir înainte a primei apariții a elementului minim să fie ordonate descrescător, iar celelalte crescător.

Exemplu


n=10
1 3 2 0 3 0 4 6 9 1


Afișează


03 2 1 00 1 3 4 6 9

Răspunsuri la întrebare

Răspuns de ElenaSF
5

#include<iostream>

#include<vector>

using namespace std;

int main() {

int n, x, min, pozitie=0, aux;

vector<int>v;

cin >> n;

while (n != 0)

{

 cin >> x;

 v.push_back(x);

 n--;

}

min = v[0];

for (int i = 0; i < v.size(); i++)

 if (v[i] < min) {

  min = v[i];

  pozitie = i;

 }

for (int i = 0; i < pozitie - 1; i++)

 for (int j = i + 1; j < pozitie; j++)

  if (v[i] < v[j])

  {

   aux = v[i];

   v[i] = v[j];

   v[j] = aux;

  }

for (int i = pozitie + 1; i <v.size() - 1; i++)

 for (int j = i + 1; j < v.size(); j++)

  if (v[i] > v[j])

  {

   aux = v[i];

   v[i] = v[j];

   v[j] = aux;

  }

for (int i = 0; i < v.size(); i++)

 cout << v[i] << " ";

}


adymus: Multumesc mult de tot , esti o salvatoare ^_^
ElenaSF: vezi ca am modificat respunsul
ElenaSF: afisa mai intai crescator si dupa descrescator, m-am grabit ^^
adymus: Am primit notificare :D multumesc inca odata , you are the best !!!!
ElenaSF: Cu placere:)
Alte întrebări interesante