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
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 ^_^
Alte întrebări interesante
Istorie,
8 ani în urmă
Studii sociale,
8 ani în urmă
Engleza,
8 ani în urmă
Matematică,
8 ani în urmă
Biologie,
8 ani în urmă