291
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