В одномерном массиве, состоящем из n вещественных элементов, вычислить:
- произведение положительных элементов массива;
- сумму элементов массива, расположенных до минимального элемента;
- упорядочить по возрастанию отдельно элементы, стоящие на четных местах, и элементы, стоящие на нечетных местах.
Код программы:
//--------------------------------------------------------------------------- #include<iostream.h> #include<conio.h> #include<math.h> #include<windows.h> #include <vcl.h> #pragma hdrstop #pragma argsused //--------------------------------------------------------------------------- char *rus(const char *text);//функция для распознавания русских букв int main(int argc, char* argv[]) { int i,n,imin=0,cnt1=0,cnt2=0; //объявление float sum=0,pro=1,min=0,temp=0; //переменных bool sort=1; cout<<rus("Введите размерность n=");cin>>n; //ввод размерности массива cout<<rus("Введите элементы массива:")<<endl<<endl; float *p=new float[n]; // объявление массива for(i=0;i<n;i++)cin>>p[i]; //ввод массива float *p1=new float[n]; //объявление массива для хранения элементов стоящих на четных позициях float *p2=new float[n]; //объявление массива для хранения элементов стоящих на нечетных позициях for(i=0;i<n;i++) if(p[i]>0) { pro*=p[i];//произведение положительных элементов } cout<<rus("\nПроизведение положительных элементов: ")<<pro<<endl; //вывод min=p[0]; //берем 1 элемент за минимальный for(i=0;i<n;i++) //поиск if(p[i]<min) //минимального { //элемента min=p[i]; imin=i; //порядковый номер } cout<<rus("\nМинимальный элемент: ")<<min<<endl;//вывод элемента cout<<rus("Позиция минимального элемента: ")<<imin+1<<endl; //вывод номера элемента for(i=0;i<imin;i++)sum+=p[i];//суммирование cout<<rus("\nСумма элементов расположенных до минимального: ")<<sum<<endl;//вывод суммы cout<<rus("\nПреобразованный массив:")<<endl<<endl; for(i=0;i<n;i++) //поиск { //элементов if((i%2)==false) //стоящих { //на p1[cnt1]=p[i]; //четных cnt1++; //позициях } if(i%2) //поиск { //элементов p2[cnt2]=p[i]; //стоящих cnt2++; //на } //нечетных позициях } while(sort) { sort=0; for(i=0;i<cnt1-1;i++) //сортировка { //элементов if(p1[i]>p1[i+1]) //стоящих { // на temp=p1[i]; // четных p1[i]=p1[i+1]; //позициях p1[i+1]=temp; sort=1; } } for(i=0;i<cnt2-1;i++) //сортировка { // элементов if(p2[i]>p2[i+1]) // стоящих { // на temp=p2[i]; // нечетных p2[i]=p2[i+1]; // позициях p2[i+1]=temp; sort=1; } } } for(i=0;i<cnt1;i++)cout<<p1[i]<<' ';//вывод отсортированных четных элементов cout<<endl; for(i=0;i<cnt2;i++)cout<<p2[i]<<' ';//вывод отсортированных нечетных элементов getch(); return 0; } //--------------------------------------------------------------------------- char bufrus[256]; char *rus(const char *text) { CharToOem(text,bufrus); return bufrus; } //---------------------------------------------------------------------------
Результат работы программы: