Вопрос задан 02.11.2023 в 18:32. Предмет Информатика. Спрашивает Дорошина Елена.

В одномерном массиве, состоящем из n вещественных элементов, вычислить: -сумму отрицательных

элементов массива; -упорядочить элементы массива по возрастанию методом вставки. Размер массива и его элементы вводит пользователь с клавиатуры. Создать динамический массив. (в c++)
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Gladkov Kirill.

#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();

}

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения данной задачи на 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[].

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос