Ajutor!
Realizati un program c++.
Se dă un vector cu n elemente, numere naturale distincte. Ordonați crescător elementele situate înaintea valorii maxime din vector și descrescător elementele situate după această valoare.Programul citește de la tastatură numerele n, iar apoi n numere naturale, reprezentând elementele vectorului.Programul va afișa pe ecran elementele vectorului, separate prin exact un spațiu, după efectuarea operațiilor cerute.
Restricții și precizări
1 ≤ n ≤ 1000
cele n numere citite vor fi mai mici decât 1.000.000.000
Răspunsuri la întrebare
Răspuns de
11
#include <iostream>
using namespace std;
bool comparare(int a, int b, int crescator)
{
if (crescator == 1)
return a > b;
return a < b;
}
void ordonare(int sir[], int indice_inceput, int indice_sfarsit, int crescator)
{
for (int i = indice_inceput; i < indice_sfarsit; i++)
{
for (int j = i + 1; j <= indice_sfarsit; j++)
{
if (comparare(sir[i], sir[j], crescator))
{
int aux = sir[i];
sir[i] = sir[j];
sir[j] = aux;
}
}
}
}
int main()
{
int nr_elem, indice_elem_maxim, sir[1001], elem_maxim;
cout << "n=";
cin >> nr_elem;
cout << "Introduceti cele " << nr_elem << " elemente:" << endl;
cin >> sir[1];
elem_maxim = sir[1];
indice_elem_maxim = 1;
for (int i = 2; i <= nr_elem; i++)
{
cin >> sir[i];
if (sir[i] > elem_maxim)
{
indice_elem_maxim = i;
elem_maxim = sir[i];
}
}
ordonare(sir, 1, indice_elem_maxim - 1, 1);
ordonare(sir, indice_elem_maxim + 1, nr_elem, 0);
for (int i = 1; i <= nr_elem; i++)
cout << sir[i] << " ";
return 0;
}
using namespace std;
bool comparare(int a, int b, int crescator)
{
if (crescator == 1)
return a > b;
return a < b;
}
void ordonare(int sir[], int indice_inceput, int indice_sfarsit, int crescator)
{
for (int i = indice_inceput; i < indice_sfarsit; i++)
{
for (int j = i + 1; j <= indice_sfarsit; j++)
{
if (comparare(sir[i], sir[j], crescator))
{
int aux = sir[i];
sir[i] = sir[j];
sir[j] = aux;
}
}
}
}
int main()
{
int nr_elem, indice_elem_maxim, sir[1001], elem_maxim;
cout << "n=";
cin >> nr_elem;
cout << "Introduceti cele " << nr_elem << " elemente:" << endl;
cin >> sir[1];
elem_maxim = sir[1];
indice_elem_maxim = 1;
for (int i = 2; i <= nr_elem; i++)
{
cin >> sir[i];
if (sir[i] > elem_maxim)
{
indice_elem_maxim = i;
elem_maxim = sir[i];
}
}
ordonare(sir, 1, indice_elem_maxim - 1, 1);
ordonare(sir, indice_elem_maxim + 1, nr_elem, 0);
for (int i = 1; i <= nr_elem; i++)
cout << sir[i] << " ";
return 0;
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Fizică,
9 ani în urmă
Biologie,
9 ani în urmă
Limba română,
9 ani în urmă