В одномерном массиве, состоящем из n вещественных элементов, вычислить: -сумму отрицательных
элементов массива; -упорядочить элементы массива по возрастанию методом вставки. Размер массива и его элементы вводит пользователь с клавиатуры. Создать динамический массив. (в c++)Ответы на вопрос
#include <iostream>
#include <vector>
using namespace std;
void solve(){
int n,ans = 0;
cin >> n;
vector<int> a(n);
for(auto &i : a) cin >> i;
sort(a.begin(),a.end());
int i = 0;
while(a[i] < 0 && i < n){
ans += a[i];
i++;
}
cout << ans;
}
signed main(){
solve();
}
Для решения данной задачи на C++ мы можем использовать следующий алгоритм:
1. Пользователь вводит размер массива n и каждый элемент массива с клавиатуры. 2. Создаем динамический массив, используя оператор new: double* arr = new double[n]. 3. Считываем элементы массива с клавиатуры и сохраняем их в динамическом массиве. 4. Инициализируем переменную sumNegatives суммой отрицательных элементов массива и устанавливаем ее равной нулю. 5. С помощью цикла for перебираем все элементы массива и проверяем, является ли текущий элемент отрицательным. Если да, то добавляем его к переменной sumNegatives. 6. Выводим на экран значение sumNegatives. 7. Сортируем элементы массива по возрастанию методом вставки. - Внешний цикл перебирает все элементы массива, начиная со второго (первый элемент уже считаем отсортированным). - Внутренний цикл сравнивает текущий элемент с предыдущим и, если текущий элемент меньше предыдущего, меняет их местами. - Повторяем внутренний цикл до тех пор, пока текущий элемент не будет больше предыдущего или не дойдем до начала массива. 8. Выводим на экран отсортированный массив.
В конце программы нужно не забыть освободить память, используя оператор delete[] arr, чтобы избежать утечки памяти.
Ниже приведен код программы на C++:
```cpp
#include
int main() { int n; std::cout << "Введите размер массива: "; std::cin >> n;
double* arr = new double[n]; std::cout << "Введите элементы массива: "; for (int i = 0; i < n; i++) { std::cin >> arr[i]; }
double sumNegatives = 0; for (int i = 0; i < n; i++) { if (arr[i] < 0) { sumNegatives += arr[i]; } }
std::cout << "Сумма отрицательных элементов: " << sumNegatives << std::endl;
// Сортировка массива методом вставки for (int i = 1; i < n; i++) { double key = arr[i]; int j = i - 1;
while (j >= 0 && arr[j] > key) { arr[j + 1] = arr[j]; j--; }
arr[j + 1] = key; }
std::cout << "Отсортированный массив: "; for (int i = 0; i < n; i++) { std::cout << arr[i] << " "; } std::cout << std::endl;
delete[] arr;
return 0; } ```
После запуска программы пользователь будет предложен ввести размер массива и его элементы. Затем программа вычислит сумму отрицательных элементов и выведет ее на экран. Затем программа отсортирует массив и выведет его содержимое в отсортированном порядке. В конце память будет освобождена с помощью оператора delete[].
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili
