Se consideră tabloul unidimensional A[1..n] cu elemente numere întregi. Să se compună un
program care va rearanja toate elementele până la primul element maximal din tabloul A în
ordine crescătoare iar cele ce urmează după acesta –în ordine descrescătoare. Tabloul modificat
se va afişa pe ecran.
Răspunsuri la întrebare
Răspuns de
1
Determini maximul din vector și salvezi poziția lui în variabila m de exemplu.
Ca sa sortezi elementele crescător pana la m și descrescător pe cele de după el poți sa folosești funcția sort care se afla în biblioteca .
bool desc (int x, int y)
{ return x > y; }
-funcția asta Îți va trebui atunci când o sa apelezi funcția sort ca sa sortezi descrescător.
Astea le scrii în main:
sort (v + 1, v + m);
sort (v + m + 1, v + n +1, desc);
-după ce determini maximul și poziția apelezi funcțiile astea și afisezi vectorul.
Ca sa sortezi elementele crescător pana la m și descrescător pe cele de după el poți sa folosești funcția sort care se afla în biblioteca .
bool desc (int x, int y)
{ return x > y; }
-funcția asta Îți va trebui atunci când o sa apelezi funcția sort ca sa sortezi descrescător.
Astea le scrii în main:
sort (v + 1, v + m);
sort (v + m + 1, v + n +1, desc);
-după ce determini maximul și poziția apelezi funcțiile astea și afisezi vectorul.
ionuttipa07:
Cel mai simplu si usor de inteles este cu Bubble Sort
#include
bool desc (int x, int y)
{
return x > y;
}
using namespace std;
int main()
{
int v[100], n, maxim = 0, pozitie = 0;
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> v[i];
if (v[i] > maxim)
{
maxim = v[i]; pozitie = i;
}
}
sort(v + 1, v + pozitie);
sort(v + pozitie + 1, v + n + 1, desc);
for (int i = 1; i <= n; i++)
cout << v[i] << " ";
return 0;
}
Si asa e cum ti-am spus eu prima data.
Alte întrebări interesante
Studii sociale,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Fizică,
9 ani în urmă
Limba română,
9 ani în urmă