Массив и метод прямого обмена

  • Автор темы Templer
  • Дата начала
Статус
Закрыто для дальнейших ответов.
T

Templer

#1
Собственно прошу подогнать мою прогу под условие(она неправильная ибо я чайник по с++).
Условие:Даны натуральные числа n , p , q , a1 , a2 , …, an , причем n ≥ q > p ≥1.
Найти количество членов последовательности a1 , a2 , …, aq удовлетво-
ряющих условию ai−1 ≤ ai ≥ ai+1, где i = 2, 3,..., (q −1), а также значение наи-
большего из членов последовательности ap , ap+1, …, an , удовлетворяющих
условию ai−1 ≥ ai ≤ ai+1, где i = (p +1), (p + 2),K, (n −1).
Упорядочить члены последовательности ap , ap+1, …, aq по возрастанию,
используя алгоритм сортировки методом прямого обмена.

Моя программа(делал по аналогии с методичкой,но походу сущий бред:) ):

C++:
#include <conio.h>
#include <iostream.h>
main()
{
int m,n,q,i,j,imax,p,*a,k,*temp_a,ibeg,iend,temp;
clrscr ();
cout<<"Введите количество элементов массива: ", cin>>n;
a=new int[n];
cout<<"Введите "<<n<<" элемента(ов) массива: ";
for(i=0;i<n;i++) cin>>a[i];
cout<<"Исходный массив: "<<endl;
for(i=0;i<n;i++) cout<<"a["<<i<<"]="<<a[i]<<" ";
cout<<endl;
cout<<"Введите q: ", cin>>q;
cout<<"Введите p: ", cin>>p;
for(int[i]=1;k=0;i<q-1;i++){
if (a[i-1]>=a[i])&&(a[i+1]=<a[i+1]) K++;}
for(imax=0,i=1;i<p;i++){
if(a[i]>a[imax]) imax=i;
}
cout<<"Максимальный элемент: a["<<imax<<"]="<<a[imax]<<endl;
temp_a=a;
m=n+ibeg-iend;
a=new int[m];
for(i=0;j=0;i<ibeg;i++,j++) a[j]=temp_a[i];
a[j++]=s_pos;
for(i=iend+1;i<n;i++,j++) a[j]=temp_a[i];
delete []temp_a;
for(i=m-1;i;i--)
for(j=0;j<i;j++)
if(a[j]>a[j+1])
temp=a[j],a[j]=a[j+1],a[j+1]=temp;
cout<<"Otcorturovanui macciv: "<<endl;
for(i=0;i<m;i++) cout<<"a['<<i<<"]="<<a[i]<<" ";
cout<<endl;
cout<<"Press me";
getch();
delete []a;
return 0;
}
 
Статус
Закрыто для дальнейших ответов.