Вопрос задан 28.06.2023 в 08:20. Предмет Информатика. Спрашивает Маджара Лиза.

Решите пожалуйста на С++ Дано: n, a[n][n]. Если на главной диагонали матрицы все элементы

положительные, вычислить и вывести значение суммы элементов главной диагонали. Иначе напечатать сообщение «На главной диагонали есть отрицательные элементы». Для решения задачи использовать динамическую память и генератор случайных чисел.​
0 0
Перейти к ответам

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

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

Ответ:

#include <iostream>

#include <ctime>

#include <cstdlib>

#define N 10

int main()

{

using namespace std;

setlocale(0, "ru");

srand(time(0));

int** pArr = new int* [N];

for (unsigned i = 0u; i < N; i++)

 *(pArr + i) = new int[N];

for (unsigned i = 0u; i < N; i++)

{

 for (unsigned j = 0u; j < N; j++)

  *(*(pArr + i) + j) = rand() % 50;

}

unsigned sum = 0u;

for (unsigned i = 0; i < N; i++)

{

 if (*(*(pArr + i) + i) > 0)

  sum += *(*(pArr + i) + i);

 else

 {

  cout << "На главной диагонали есть отрицательные элементы";

  goto EXIT;

 }

}

cout <<"Сумма: " << sum << endl;

EXIT:

for (int i = 0; i < N; i++)

 delete[] *(pArr + i);

delete[] pArr;

return 0;

}

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

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

cpp
#include <iostream> #include <cstdlib> #include <ctime> int main() { // Инициализация генератора случайных чисел srand(time(0)); int n; std::cout << "Введите размерность матрицы n: "; std::cin >> n; // Выделение динамической памяти для матрицы a[n][n] int **a = new int*[n]; for (int i = 0; i < n; ++i) { a[i] = new int[n]; } // Заполнение матрицы случайными числами for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { a[i][j] = rand() % 20 - 10; // Генерируем случайные числа от -10 до 9 } } // Вывод матрицы на экран std::cout << "Матрица a[" << n << "][" << n << "]:\n"; for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { std::cout << a[i][j] << "\t"; } std::cout << std::endl; } // Проверка главной диагонали bool allPositive = true; int diagonalSum = 0; for (int i = 0; i < n; ++i) { if (a[i][i] < 0) { allPositive = false; break; } diagonalSum += a[i][i]; } // Вывод результата if (allPositive) { std::cout << "Сумма элементов главной диагонали: " << diagonalSum << std::endl; } else { std::cout << "На главной диагонали есть отрицательные элементы." << std::endl; } // Освобождение выделенной памяти for (int i = 0; i < n; ++i) { delete[] a[i]; } delete[] a; return 0; }

Этот код сначала запрашивает размерность матрицы n, затем выделяет динамическую память для матрицы a[n][n] и заполняет её случайными числами. После этого он проверяет главную диагональ на наличие отрицательных элементов и выводит результат на экран. Наконец, он освобождает выделенную память.

0 0

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

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

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

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