В одномерном массиве, состоящем из n вещественных элементов, вычислить:
1) Сумму положительных элементов массива.
2) Произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами.
Другие языки программирования и технологии
Очень прошу помочь написать программу на c++.
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
srand(static_cast <unsigned> (time(NULL)));
int n = rand() % 16 + 5;
double * a = new double [ n ];
cout << "Дан массив [" << n << "]:" << endl;
cout.precision(2);
double s = 0, p = 1;
int imin = 0, imax = 0;
for (int i = 0; i < n; i++)
{
bool f;
do
{
a[ i ] = static_cast <double> (rand() % 1999 - 999) / 100;
int j = i - 1;
f = false;
while (!f && j >= 0)
{
f = a[ i ] == a[ j ];
j--;
}
} while (f);
cout << fixed << setw(8) << a[ i ];
if (a[ i ] > 0)
s += a[ i ];
if (fabs(a[ i ]) < fabs(a[ imin ]))
imin = i;
if (fabs(a[ i ]) > fabs(a[ imax ]))
imax = i;
}
cout << endl;
if (!s)
cout << "Положительных элементов нет" << endl;
else
cout << "Сумма положительных элементов: " << fixed << s << endl;
if (abs(imin - imax) < 2)
cout << "Между максимальным по модулю и минимальным по модулю нет элементов";
else
{
if (imin > imax)
{
imin ^= imax;
imax ^= imin;
imin ^= imax;
}
for (int i = imin + 1; i < imax; i++)
p *= a[ i ];
cout.precision(6);
cout << "Произведение элементов между макс. и мин. по модулю элементами: "
<< fixed << p;
}
cin.get();
delete [ ] a;
return 0;
}
#include <iomanip>
#include <cmath>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
srand(static_cast <unsigned> (time(NULL)));
int n = rand() % 16 + 5;
double * a = new double [ n ];
cout << "Дан массив [" << n << "]:" << endl;
cout.precision(2);
double s = 0, p = 1;
int imin = 0, imax = 0;
for (int i = 0; i < n; i++)
{
bool f;
do
{
a[ i ] = static_cast <double> (rand() % 1999 - 999) / 100;
int j = i - 1;
f = false;
while (!f && j >= 0)
{
f = a[ i ] == a[ j ];
j--;
}
} while (f);
cout << fixed << setw(8) << a[ i ];
if (a[ i ] > 0)
s += a[ i ];
if (fabs(a[ i ]) < fabs(a[ imin ]))
imin = i;
if (fabs(a[ i ]) > fabs(a[ imax ]))
imax = i;
}
cout << endl;
if (!s)
cout << "Положительных элементов нет" << endl;
else
cout << "Сумма положительных элементов: " << fixed << s << endl;
if (abs(imin - imax) < 2)
cout << "Между максимальным по модулю и минимальным по модулю нет элементов";
else
{
if (imin > imax)
{
imin ^= imax;
imax ^= imin;
imin ^= imax;
}
for (int i = imin + 1; i < imax; i++)
p *= a[ i ];
cout.precision(6);
cout << "Произведение элементов между макс. и мин. по модулю элементами: "
<< fixed << p;
}
cin.get();
delete [ ] a;
return 0;
}
делаешь цикл от 0 до n, переменную которая = 0, в цикле делаешь условие - если ( текущий элемент массива больше нуля ) то переменная = переменная + текущий элемент массива, это тебе сумма буит, а второе почти так же, тока я хз как там сравнить по модулю, поискай в инете там мож функция есть иль спец оператор сравнения по модулю
500р и напишу
500 и все зделаю ))
10000р и я выучу C++ и напишу :D
денежка и напишем ))) а ёще узнать бы тип компиллятора и режим отображения
Готовых мало?
Похожие вопросы
- Очень прошу помочь написать программу на c++.
- Помогите написать программу на C/C++
- Помогите написать программу по C++
- помогите написать программу на c++
- Помогите написать программу в C++
- Помогите написать программу в C# пожалуйста!
- Помогите написать программу на C++
- Помогите написать программу на C++
- Помогите написать программу в C# !!
- Ребята, помогите написать программу в C++