• Предмет: Информатика
  • Автор: blackzenya
  • Вопрос задан 3 месяца назад

Виконати завдання(c++) використовуючи динамічну пам’ять та

вказівники на неї. До елементів масиву звертатись за допомогою вказівників

(Звернення до елементів через індекс (напр. A[i]) не дозволяється).


Задано масив дійсних чисел A(n× m), n ≤ 100, m ≤ 10. Розробити програму, яка

обчислює

Z = max (min(A[0], ... , A[m −1]), min(A[m], ... , A[2m −1]),...,

min(A[m(n −1)], ... , A[n⋅m −1])) .

У масиві n груп по m чисел. Максимальне значення шукається серед мінімальних

значень елементів у кожній групі.​

Ответы

Ответ дал: m24500311
1

Объяснение:

Ось код програми на C++, що вирішує цю задачу з використанням динамічної пам'яті та вказівників.

```c++

#include<iostream>

using namespace std;

int main() {

int n, m;

cout << "Введіть кількість груп: ";

cin >> n;

cout << "Введіть кількість елементів в групі: ";

cin >> m;

// виділення пам'яті під масив

double** A = new double* [n];

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

A[i] = new double[m];

}

// заповнення масиву

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

cout << "Введіть елементи " << i + 1 << " групи:" << endl;

for (int j = 0; j < m; j++) {

cout << "A[" << i << "][" << j << "] = ";

cin >> *(A[i] + j); // звертання до елементу масиву через вказівник

}

}

// обчислення максимального значення

double Z = -1e9;

for (int i = 0; i < m; i++) {

double minA = 1e9;

for (int j = 0; j < n; j++) {

if (*(A[j] + i) < minA) {

minA = *(A[j] + i);

}

}

if (minA > Z) {

Z = minA;

}

}

cout << "Значення Z = " << Z << endl;

// звільнення виділеної пам'яті

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

delete[] A[i];

}

delete[] A;

return 0;

}

```

Ця програма пропонує користувачеві ввести кількість груп та кількість елементів в групі, а потім заповнює масив A дійсних чисел розміром nхm використовуючи вказівники. Після цього вона обчислює максимальне значення, шукаючи мінімальні значення в кожній групі, і виводить значення Z. В кінці програма звільняє виділену динамічною пам'яттю.

Вас заинтересует