В одномерном массиве, состоящем из n вещественных элементов, вычислить:
- максимальный элемент массива;
- сумму элементов массива, расположенных до последнего положительного элемента;
- cжать массив, удалив из него все элементы, модуль которых находится в интервале [а,b]. Освободившиеся в конце массива элементы заполнить нулями.
Код программы:
//--------------------------------------------------------------------------- #include<iostream.h> #include<conio.h> #include<windows.h> #include<math.h> #include <vcl.h> #pragma hdrstop #pragma argsused //--------------------------------------------------------------------------- char *rus(const char *text); //функция для распознавания русских символов int main(int argc, char* argv[]) { randomize(); int i,n,iend=0; //объявление float sum=0,max=0,a,b;//переменных cout<<rus("Введите размерность n=");cin>>n;//ввод размерности cout<<rus("Введите интервал:")<<endl<<endl; cout<<"a=";cin>>a; //ввод cout<<"b=";cin>>b; //интервала cout<<rus("\nВведите элементы массива:")<<endl<<endl; float *p=new float[n]; //объявление массива randomize(); for(i=0;i<n;i++)//ввод массива { p[i]=-5.3+random(10.9); cout<<p[i]<<' '; } max=p[0]; //берем первый элемент за максимальный for(i=0;i<n;i++)//поиск if(p[i]>max) //максимального { max=p[i]; // элемента } cout<<rus("\n\nМаксимальный элемент: ")<<max<<endl; //вывод for(i=0;i<n;i++) //поиск if(p[i]>0) //последнего отрицательного { //элемента iend=i; //порядковый номер } for(i=0;i<iend;i++)sum+=p[i]; //суммирование cout<<rus("\nСумма элементов расположенных до последнего положительного: ")<<sum<<endl;//вывод cout<<rus("\nПреобразованный массив:")<<endl<<endl; for(i=0;i<n;i++) //поиск элементов if(fabs(p[i])>=a&&fabs(p[i])<=b) //входящих в заданный интервал { cout<<p[i]<<' '; //вывод } for(i=0;i<n;i++) //поиск элементов if(fabs(p[i])<a||fabs(p[i])>b) //не входящих в заданный интервал { p[i]=0; //и их обнуление cout<<p[i]<<' '; //вывод } getch(); return 0; } //--------------------------------------------------------------------------- char bufrus[256]; char *rus(const char *text) { CharToOem(text,bufrus); return bufrus; } //---------------------------------------------------------------------------
Результат работы программы: