Informatică, întrebare adresată de dencolibap5qwou, 9 ani în urmă

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 ionuttipa07
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.

ionuttipa07: Cel mai simplu si usor de inteles este cu Bubble Sort
ionuttipa07: https://ghostbin.com/paste/7feg2 , ia si copiaza ata undeva pentru ca o sa fie sters.
dencolibap5qwou: și asta e totul... Acesta e programul?
ionuttipa07: e un link
dencolibap5qwou: ok...
dencolibap5qwou: mersi foarte mult!!!
ionuttipa07: ai reusit sa il gasesti?
dencolibap5qwou: da
dencolibap5qwou: îți sunt recunoscător. mersi!
ionuttipa07: #include
#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