Вопрос задан 24.06.2023 в 05:34. Предмет Информатика. Спрашивает Гафиева Аделя.

Розробити програму, дотримаючись таких вимог: викорис- товувати динамічні масиви; реальні розміри

масиву n i m ввести з клавіатури; елементи масиву – псевдовипадкові числа на інтервалі [a,b], де a і b (a<b) вводяться з клавіатури; усі вхідні дані, елементи вхідного і вихідного масивів виводяться на екран у зручному для перегляду вигляді. Дана прямокутна дійсна матриця. Підрахувати кількість парних і непарних елементів на головній і побічній діагоналях матриці.Визначити номер стовпця, сума елементів якого мінімальна.​Писати на мові C++​
0 0
Перейти к ответам

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

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

Ответ:

Объяснение:

#include <iostream>

#include <ctime>

#include <string>

using namespace std;

int main()

{

srand(time(NULL));

int rows, cols; // Розміри матриці

cout << "Enter n: ";

cin >> rows;

cout << "Enter m: ";

cin >> cols;

if (rows != cols) return 0; // Тільки в квадратній матриці є головна та побічна діагоналі

int a, b; // Межі випадкових чисел масиву

cout << "Enter a: ";

cin >> a;

cout << "Enter b: ";

cin >> b;

int Width = max(to_string(a).length(), to_string(b).length()) + 1; // Ширина для cout

int** arr = new int* [rows]; // Динамічний масив

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

{

 arr[i] = new int[cols];

}

cout << "n = " << rows << endl

 << "m = " << cols << endl

 << "Interval - [" << a << ";" << b << "]" << endl << endl

 << "Our matrix: " << endl;

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

{

 for (int j = 0; j < cols; j++)

 {

  arr[i][j] = a + rand() % (b - a + 1);

  cout.width(Width); // Щоб було красиво

  cout << arr[i][j];

 }

 cout << endl;

}

cout << endl;

int mainOdd = 0, mainEven = 0, sideOdd = 0, sideEven = 0;

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

{

 for (int j = 0; j < cols; j++)

 {

  if (i == j) (arr[i][j] % 2 == 0) ? mainEven++ : mainOdd++;

  if (i + j == rows - 1) (arr[i][j] % 2 == 0) ? sideEven++ : sideOdd++;

 }

}

int column, minSum;

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

{

 int sum = 0;

 for (int j = 0; j < rows; j++)

 {

  sum += arr[j][i];

 }

 if (i == 0) { minSum = sum; column = i; }

 else if (sum < minSum) { minSum = sum; column = i; }

}

cout << "---Main diagonal---" << endl

 << "Even numbers: " << mainEven << endl

 << "Odd numbers: " << mainOdd << endl;

cout << endl << "---Side diagonal---" << endl

 << "Even numbers: " << sideEven << endl

 << "Odd numbers: " << sideOdd << endl;

cout << endl << "Column number: " << column << " (counting from 0)" << endl;

for (int i = 0; i < rows; i++) // Звільнення динамічної пам'яті

{

 delete[] arr[i];

}

delete[] arr;

}

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

Що за цікавий завдання! Прекрасно. Давай зробимо це. Відомо, що у вас є матриця, і ти хочеш підрахувати парні та непарні елементи на головній та побічній діагоналях, а також знайти номер стовпця, сума елементів якого мінімальна.

cpp
#include <iostream> #include <cstdlib> #include <ctime> using namespace std; int main() { int n, m, a, b; // Введення розмірів масиву та інтервалу для псевдовипадкових чисел cout << "Введіть розміри матриці (n та m): "; cin >> n >> m; cout << "Введіть інтервал [a, b] для псевдовипадкових чисел (a < b): "; cin >> a >> b; // Ініціалізація генератора псевдовипадкових чисел srand(time(0)); // Створення та заповнення матриці випадковими числами int matrix[n][m]; for (int i = 0; i < n; ++i) { for (int j = 0; j < m; ++j) { matrix[i][j] = rand() % (b - a + 1) + a; cout << matrix[i][j] << "\t"; } cout << endl; } // Підрахунок парних та непарних елементів на головній та побічній діагоналях int even_main = 0, odd_main = 0, even_secondary = 0, odd_secondary = 0; for (int i = 0; i < n; ++i) { if (matrix[i][i] % 2 == 0) even_main++; else odd_main++; if (matrix[i][m - i - 1] % 2 == 0) even_secondary++; else odd_secondary++; } // Виведення результатів cout << "Парні та непарні елементи на головній діагоналі: " << even_main << ", " << odd_main << endl; cout << "Парні та непарні елементи на побічній діагоналі: " << even_secondary << ", " << odd_secondary << endl; // Пошук номера стовпця з мінімальною сумою int min_sum_col = 0; int min_sum = INT_MAX; for (int j = 0; j < m; ++j) { int sum = 0; for (int i = 0; i < n; ++i) { sum += matrix[i][j]; } if (sum < min_sum) { min_sum = sum; min_sum_col = j; } } cout << "Номер стовпця з мінімальною сумою елементів: " << min_sum_col + 1 << endl; return 0; }

Намагався уникнути надто складних речей тут, але це вже досить повноцінна програма на C++. Будь ласка, протестуй цей код та дай знати, якщо у тебе виникають які-небудь питання!

0 0

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

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

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

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