21.05.2008, 18:56
общий
это ответ
Здравствуйте, Константин Шипилов!
Вот функции реализующие необходимые действия, функцию сортировки при необходимости можно улучшить.
//функция суммирования отрицательных элементов массива;
// rasmer - размер массива
double SummNegative(double mass[], int rasmer){
double sum=0;
for(int i=0; i<rasmer; i++){
if(mass[i]<0) sum+=mass[i];
}
return sum;
}
//функция нахождения индекса максимума на интервале от min до max (служебная)
int Max((double mass[], int max, int min){
int k=min;
double X=mass[min];
for(int i=min; i<max; i++){
if(X<mass[i+1]) {
k=i+1;
X=mass[i+1];
}
}
return k;
}
//функция нахождения индекса минимума на интервале от min до max (служебная)
int Min((double mass[], int max, int min){
int k=min;
double X=mass[min];
for(int i=min; i<max; i++){
if(X>mass[i+1]) {
k=i+1;
X=mass[i+1];
}
}
return k;
}
//функция нахождения произведения элементов массива,
//расположенных между максимальным и минимальным элементами
// rasmer - размер массива
double Product(double mass[], int rasmer){
int L=Min(mass[], rasmer, 0);
int M=Max(mass[], rasmer, 0);
if(L<M){double Res=1
for(int i=L; i<=M; i++){
Res*=mass[i];
}
}
if(L>M){double Res=1
for(int i=M; i<=L; i++){
Res*=mass[i];
}
}
if(L==M){
cout <<"No different number in mass"
Res=mass[L];
}
return Res;
}
//функция сортировки
// rasmer - размер массива
void Sort(double mass[], int rasmer){
for(int i=0; i<rasmer; i++){
int min=Min(mass[], rasmer, i);
double tmp=mass[i];
mass[i]=mass[min];
mass[min]=tmp;
}
}