414
Cerinţa
Să se ordoneze crescător elementele dintr-un şir dat cuprinse între elementul de valoare maximă şi cel de valoare minimă.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale distincte, separate prin spaţii.
Date de ieşire
Programul afișează pe ecran elementele şirului după ordonare.
Restricţii şi precizări
0 < n ≤ 1000- elementele şirului sunt numere naturale mai mici decât 1.000.000
Exemplu
Intrare
5 10 20 15 7 12
Ieșire
10 7 15 20 12
Explicație
S-au ordonat elementele aflate pe poziţiile 2, 3, 4.
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin >> n;
int a[1001];
int min = 1000001, max = 0, imin, imax;
for(int i = 1; i <= n; ++i)
cin >> a[i];
for(int i = 1; i <= n; ++i){
if(a[i] < min)
min = a[i], imin = i;
if(a[i] > max)
max = a[i], imax = i;
}
if(imin > imax) swap(imin, imax);
for(int i = imin; i < imax; ++i)
for(int j = i + 1; j <= imax; ++j)
if(a[i] > a[j])
swap(a[i], a[j]);
for(int i = 1; i <= n; ++i)
cout << a[i] << " ";
return 0;
}
Comentarii