Помогите, пожалуйста. Нужно написать код в С++.
Задача: В одном массиве, состоящем из n вещественных элементов, вычислить:
1) количество отрицательных элементов массива
2) сумму модулей элементов массива, расположенных после минимального по модулю элемента
Заменить все отрицательные элементы массива их квадратами и упорядочить элементы массива по возрастанию.
Спасибо за помощь
Ответы
Вот решение задачи на языке С++:
#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
int main() {
const int n = 10; // задаем размер массива
double a[n]; // объявляем массив
int count_negative = 0; // количество отрицательных элементов
double sum_mod = 0; // сумма модулей элементов после минимального по модулю элемента
double min_mod = INFINITY; // минимальный по модулю элемент
int index_min_mod = -1; // индекс минимального по модулю элемента
// заполняем массив случайными значениями
for (int i = 0; i < n; i++) {
a[i] = (double) rand() / RAND_MAX * 10 - 5; // случайное значение в диапазоне от -5 до 5
}
// выводим исходный массив
cout << "Исходный массив: ";
for (int i = 0; i < n; i++) {
cout << a[i] << " ";
}
cout << endl;
// вычисляем количество отрицательных элементов и сумму модулей элементов после минимального по модулю элемента
for (int i = 0; i < n; i++) {
if (a[i] < 0) {
count_negative++;
a[i] = pow(a[i], 2); // заменяем отрицательный элемент его квадратом
}
double mod = abs(a[i]);
if (mod < min_mod) {
min_mod = mod;
index_min_mod = i;
}
if (i > index_min_mod) {
sum_mod += mod;
}
}
// сортируем массив по возрастанию
sort(a, a + n);
// выводим результаты
cout << "Количество отрицательных элементов: " << count_negative << endl;
cout << "Сумма модулей элементов после минимального по модулю элемента: " << sum_mod << endl;
cout << "Измененный и отсортированный массив: ";
for (int i = 0; i < n; i++) {
cout << a[i] << " ";
}
cout << endl;
return 0;
}