Вопрос задан 30.11.2023 в 18:05. Предмет Информатика. Спрашивает Сапужак Вікторія.

Создать динамические массивы, используя указатели. Задан одномерный массив а (n). Найти номер

последнего положительного элемента и переставить его с первым элементом массива. Найти количество и сумму отрицательных элементов массива. С++
0 0
Перейти к ответам

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

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

Відповідь:

#include<iostream>

#include<random>

#include<ctime>

int main(){

setlocale(0,"");

std::mt19937 f(time(0));

   std::uniform_int_distribution<> uid(-100,100);

   

   long n,pos=0,neg=0,index;

   std::cout<<"Введите n:\n";

   std::cin>>n;std::cin.ignore();

   std::cout<<"Массив до замены:\n";

   

   long *mas = new long[n];

   for(long i=0;i<n;i++){

    mas[i]=uid(f);

    std::cout<<"mas["<<i<<"] = "<<mas[i]<<std::endl;

    if(mas[i]>0) pos+=mas[i];

    else neg+=mas[i];

}

for(index=n-1;index>=0;index--){

 if(mas[index]>0)break;

}

std::swap(mas[0],mas[index]);

std::cout<<"Массив после замены:\n";

   

for(long i=0;i<n;i++){

    std::cout<<"mas["<<i<<"] = "<<mas[i]<<std::endl;

}

std::cout<<"Сумма позитивных чисел = "<<pos<<std::endl;

std::cout<<"Сумма отрицательных чисел = "<<neg<<std::endl;

delete []mas;

return 0;

}

Использован вихрь Мерсенна.

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

Конечно, я могу помочь вам с этой задачей на языке программирования C++. Вот пример кода:

```cpp #include

int main() { // Задаем размер массива int n; std::cout << "Введите размер массива: "; std::cin >> n;

// Создаем динамический массив int* a = new int[n];

// Вводим элементы массива std::cout << "Введите элементы массива:\n"; for (int i = 0; i < n; ++i) { std::cout << "a[" << i << "] = "; std::cin >> a[i]; }

// Находим номер последнего положительного элемента int lastPositiveIndex = -1; for (int i = 0; i < n; ++i) { if (a[i] > 0) { lastPositiveIndex = i; } }

// Переставляем последний положительный элемент с первым if (lastPositiveIndex != -1) { int temp = a[0]; a[0] = a[lastPositiveIndex]; a[lastPositiveIndex] = temp; }

// Находим количество и сумму отрицательных элементов int countNegative = 0; int sumNegative = 0; for (int i = 0; i < n; ++i) { if (a[i] < 0) { ++countNegative; sumNegative += a[i]; } }

// Выводим результаты std::cout << "Массив после перестановки:\n"; for (int i = 0; i < n; ++i) { std::cout << "a[" << i << "] = " << a[i] << "\n"; }

std::cout << "Номер последнего положительного элемента: " << lastPositiveIndex << "\n"; std::cout << "Количество отрицательных элементов: " << countNegative << "\n"; std::cout << "Сумма отрицательных элементов: " << sumNegative << "\n";

// Освобождаем выделенную память delete[] a;

return 0; } ```

Этот код создает динамический массив, заполняет его значениями, находит номер последнего положительного элемента и переставляет его с первым элементом. Затем он находит количество и сумму отрицательных элементов и выводит результаты. Не забывайте освобождать память с помощью `delete[]` после использования динамического массива.

0 0

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

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

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

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