В одномерном массиве, состоящем из n вещественных элементов, вычислить:
- сумму отрицательных элементов массива;
- произведение элементов массива, расположенных между максимальным и минимальным элементами;
- упорядочить элементы массива по возрастанию.
Код программы:
//--------------------------------------------------------------------------- #include<iostream.h> #include<conio.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,min=0,max=0,pro=1; randomize(); cout<<rus("Введите размерность n=");cin>>n; cout<<rus("Введите элементы массива:")<<endl<<endl; float *p=new float[n]; for(i=0;i<n;i++) { p[i]=-2.1+random(10.6); 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(p[i]>max) { max=p[i]; imax=i; } if(p[i]<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<<p[i]<<' '; getch(); return 0; } //--------------------------------------------------------------------------- char bufrus[256]; char *rus(const char *text) { CharToOem(text,bufrus); return bufrus; } //---------------------------------------------------------------------------
Результат работы программы: