на в ходе 3 3 4 5 4 2 1 0 3 1
на выходе 3 5 4 3 4 2 1 3 0 1
#include <iostream>
const int N = 10;
using namespace std;
void reverse (int arr[],int s, int f)
{ int i,tmp;
for(i=0;i<(f-s)/2+1;i++)
{ tmp = arr[s+i];
arr[s+i] = arr[f-i];
arr[f-i] = tmp;
}
}
int main()
{
//int A[]={3, 3, 4, 5, 4, 9, 1, 0, 3, 1};
int A[N];
int i,j,start,finish;
for(i=0;i<N;i++)
{
cin >> A[i];
}
system("cls");
cout<<"Start:\n";
for(i=0;i<N;i++)
{
cout<<A[i]<<" ";
}
start = 0;
finish = 0;
for(i=1;i<N;i++)
{
if(A[i]>A[i-1]) finish = i;
else
{
if(finish>start) reverse (A,start,finish);
start = i;
}
}
cout<<"\nResult:\n";
for(i=0;i<N;i++)
{
cout<<A[i]<<" ";
}
cout<<"\n";
system("pause");
return 0;
}