В одномерном массиве, состоящем из n вещественных элементов, вычислить:
1) количество отрицательных элементов массива;
2) сумму модулей элементов массива, расположенных после минимального по модулю
элемента.
Заменить все отрицательные элементы массива их квадратами и упорядочить элементы
C/C++
Одномерные массивы. Сортировка
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <random>
#include <numeric>
using namespace std;
size_t length(const char* msg) {
cout << msg;
size_t value;
cin >> value;
cin.ignore(cin.rdbuf()->in_avail());
return value;
}
void show(double* box, const size_t n) {
cout.setf(ios::fixed);
cout.precision(2);
for (auto i = 0U; i < n; ++i) cout << setw(7) << box[i];
puts("");
}
int main() {
const auto left = -99;
const auto right = 99;
uniform_int_distribution<> uid(left, right);
mt19937 gen{ random_device()() };
auto n = length("N: ");
auto box = new double[n];
for (auto i = 0U; i < n; ++i) box[i] = uid(gen) / 10.0;
show(box, n);
auto neg = count_if(box, box + n, [](double x) { return x < 0; });
cout << "Negative: " << neg << '\n';
auto pos = min_element(box, box + n, [](double a, double b) { return fabs(a) < fabs(b); });
cout << "Min: " << *pos << '\n';
auto sum = accumulate(pos + 1, box + n, 0.0, [](double s, double x) { return s + fabs(x); });
cout << "Sum: " << sum << '\n';
for_each(box, box + n, [](double& x) { if (x < 0) x *= x; });
show(box, n);
sort(box, box + n);
show(box, n);
delete[] box;
system("pause > nul");
}
#include <iostream>
#include <iomanip>
#include <random>
#include <numeric>
using namespace std;
size_t length(const char* msg) {
cout << msg;
size_t value;
cin >> value;
cin.ignore(cin.rdbuf()->in_avail());
return value;
}
void show(double* box, const size_t n) {
cout.setf(ios::fixed);
cout.precision(2);
for (auto i = 0U; i < n; ++i) cout << setw(7) << box[i];
puts("");
}
int main() {
const auto left = -99;
const auto right = 99;
uniform_int_distribution<> uid(left, right);
mt19937 gen{ random_device()() };
auto n = length("N: ");
auto box = new double[n];
for (auto i = 0U; i < n; ++i) box[i] = uid(gen) / 10.0;
show(box, n);
auto neg = count_if(box, box + n, [](double x) { return x < 0; });
cout << "Negative: " << neg << '\n';
auto pos = min_element(box, box + n, [](double a, double b) { return fabs(a) < fabs(b); });
cout << "Min: " << *pos << '\n';
auto sum = accumulate(pos + 1, box + n, 0.0, [](double s, double x) { return s + fabs(x); });
cout << "Sum: " << sum << '\n';
for_each(box, box + n, [](double& x) { if (x < 0) x *= x; });
show(box, n);
sort(box, box + n);
show(box, n);
delete[] box;
system("pause > nul");
}
Андрей Кузнецов
вы просто лучший!
Похожие вопросы
- Нужна помощь в составлении одномерных массивов С++
- C++\Работа с одномерными массивами: удаление, добавление, перестановка, поиск
- В одномерном массиве, состоящем из n вещественных элементов, вычислить сумму элементов массива
- Написать программу «справочник». Создать два одномерных массива. Один массив хранит номера мобильных телефонов, второй
- Написать код на С++ в одномерном массиве
- Одномерные массивы на языке си
- Написать программу на С++ с применением одномерных массивов, используя указатели.
- C++ Обработка одномерных массивов.
- Задача на одномерные массивы С++
- Составить программу. В одномерном массиве произвольных чисел вычислить произведения четных и нечетных элементов.