Sa se rezolve problema de mai jos
Răspunsuri la întrebare
#include <iostream>
using namespace std;
void bac(int x[], int &p1, int &p2)
{
int pozitivIndex = -1;
bool ok = true;
for (int i = p1; i <= p2 && ok; i++)
if (x[i] > 0)
{
pozitivIndex = i;
ok = false;
}
int negativIndex = -1;
ok = true;
for (int i = p2; i >= p1 && ok; i--)
if (x[i] < 0)
{
negativIndex = i;
ok = false;
}
if (pozitivIndex != -1 && negativIndex != -1)
{
int aux = x[pozitivIndex];
x[pozitivIndex] = x[negativIndex];
x[negativIndex] = aux;
p1 = pozitivIndex;
p2 = negativIndex;
}
}
int main()
{
int x[100], n;
cin >> n;
cin >> x[0];
for (int i = 1; i < n; i++)
{
cin >> x[i];
if (x[i] < 0)
{
int p1 = 0, p2 = i;
bac(x, p1, p2);
}
}
cout << endl;
for (int i = 0; i <= n / 2 - 1; i++)
{
int aux = x[i];
x[i] = x[n-1-i];
x[n-1-i] = aux;
}
for (int i = 0; i < n; i++)
cout << x[i] << ' ';
return 0;
}