Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++] Уподрядочить члены последовательности


Автор: xitrec1zaraza 30.11.2010, 05:02
1)Даны натуральные числа n,p,q и целые числа a1,a2, ....an. причем n>q>p>1.

2)Найти сумму положительных четных чисел последовательности а1,а2, ...a(q). то есть сколько ведут q столько и складывать (походу с начала последовательности препод канешь хорошо всё объяснил...)
3)Потом перемножить числа последовательности a(p),a(p+1),a(n), условие снова интересное -1<a(i)<1 где i=p, (p+1), ..., n.

4)Упорядочить члены последовательности a(p),a(p+1),a(q) по убыванию, используйте алгоритм сортировки методом вставки. 

Не знаю как упорядочить... Подскажите и еще не уверен с третим условием...

Вот то что накропал...

#include <conio.h>
#include <iostream.h>


int main()
{
int n,q,p;
int sum,przv;
int i,j,y; // счетчики циклов
int *a; // массив
int temp; // временная переменная для перестановки элементов массива при сортировке

clrscr();

// Ввод входных данных
cout<<"Vvedite kolichestvo n elementov massiva: ";
cin>>n;
cout<<"Vvedite chislo q: ";
cin>>q;
cout<<"Vvedite chislo p: ";
cin>>p;

a=new int[n];
cout<<"Vvedite "<<n<<" element(ov) massiva: ";
for(i=0;i<n;i++) cin>>a[i];
cout<<"Ishodniy massiv: "<<endl;
for(i=0;i<n;i++) cout<<"a["<<i<<"]="<<a[i]<<" ";
cout<<endl;

// Summa polojitelnih chetnih chlenov posledovatelnosti a[1],a[2],...,a[q]

for(sum=i=0;i<q;i++)
{
if((a[i]>0)&&(a[i]%2==0)) sum+=a[i];
}
cout<<"Summa polojitelnih chetnih chlenov posledovatelnosti a[1],a[2],...,a[q]: "<<sum<<endl<<endl;

// Proizvedeniy elementov posledovatelnosti a[p],a[p+1],...,a[n], udovletvoryaushchih usloviy
// -1<=a[i]<=1, gde i=p,p+1,...,n;
cout<<"Kolichestvo elementov posledovatelnosti a[1],a[2],...,a[q], udovletvorayushchih ";
cout<<"usloviyu a[i-1]<=a[i]>=a[i+1], gde i=2,3,...,q-1: ";
przv=1;
for(i=p;i<=n;i++)
{
if((a[i]>=-1)&&(a[i]<=1)) przv*=a[i];
}
cout<<przv<<"."<<endl;


// Sortiruem posledovatelnost a[p],a[p+1],...,a[q] po ubivaniyu metodom vstavok
// i vivodim rezultiruyushchiy massiv
for(i=p-1;i<q;i++)
{
temp=a[i];
for (j=i-1; j>=0 && temp>a[j]; j--)
a[j+1]=a[j];
a[j+1]=temp;
}

cout<<"Otsortirovanniy metodom vstavok posledovatelnost:"<<endl;
for(i=p-1,y=1;i<q;i++,y++) cout<<y<<" element="<<a[i]<<" "<<endl;
cout<<endl<<endl;

cout<<"Press any key...";
getch();


return 0;
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)