В одномерном массиве, состоящем из n вещественных элементов, вычислить:
- сумму положительных элементов массива;
- произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами;
- упорядочить элементы массива по убыванию.
Код программы:
//--------------------------------------------------------------------------- #include<iostream.h> #include<conio.h> #include<math.h> #include<iomanip.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,imax=0,imin=0,ibeg=0,iend=0; bool sort=1; float sum=0,temp=0,pro=1,min=0,max=0; cout<<rus("Введите размерность n=");cin>>n; cout<<rus("Введите элементы массива:")<<endl<<endl; float *p=new float[n]; randomize(); for(i=0;i<n;i++) { p[i]=-5.2+random(10.3); cout<<p[i]<<' '; } for(i=0;i<n;i++) if(p[i]>0) { sum+=p[i]; } cout<<rus("\n\nСумма положительных элементов: ")<<sum<<endl; max=p[0]; min=p[0]; for(i=0;i<n;i++) { if(fabs(p[i])>fabs(max)) { max=p[i]; imax=i; } if(fabs(p[i])<fabs(min)) { min=p[i]; imin=i; } } cout<<rus("\nМаксимальный по модулю элемент: ")<<max<<endl; cout<<rus("Минимальный по модулю элемент: ")<<min<<endl; ibeg=imax<imin?imax:imin; iend=imax<imin?imin:imax; for(i=ibeg+1;i<iend;i++)pro*=p[i]; cout<<rus("\nПроизведение между max и min по модулю элементами: ")<<pro<<endl; while(sort) { sort=0; for(i=0;i<n-1;i++) if(p[i]<p[i+1]) { temp=p[i]; p[i]=p[i+1]; p[i+1]=temp; sort=1; } } cout<<rus("\nОтсортированный массив по убыванию:")<<endl<<endl; for(i=0;i<n;i++)cout<<setw(5)<<p[i]; getch(); return 0; } //--------------------------------------------------------------------------- char bufrus[256]; char *rus(const char *text) { CharToOem(text,bufrus); return bufrus; } //---------------------------------------------------------------------------
Результат работы программы: