Даны натуральное число n и целочисленная матрица [aij]i,j=1, ... ,n. Получить b1, b2, ..., bn, где bi – это max aij min aji 1<=j<=n 1<=j<=n Сам код:
#include <iostream>
using namespace std;
int max (int a[100][100], int b[100] , int size)
{
for (int j = 0; j < (size); j++)
{
for (int i = 1; i < (size); i++)
{
int k = 0;
if (a[k][j] <= a[i][j])
{
k = i;
}
b[j] = a[k][j];
}
}
return b[100];
}
int min (int a[100][100], int b[100] , int size)
{
for (int i = 0; i < (size); i++)
{
for (int j = 1; j < (size); j++)
{
int k = 0;
if (a[i][k] >= a[i][j])
{
k = j;
}
b[i] = a[i][k];
}
}
return b[100];
}
int main()
{
int n;
int array[100][100];
int maxi[100];
int mini[100];
cin >> n;
for(int i = 0; i < n; i++ )
{
for(int j = 0; j < n; j++ )
cin >> array[i][j]; // ввели массив
//cout <<" "<< endl;
}
//функция ищущая максимум в столбце (записывает значения в новый массив)
max (array, maxi, n);
//функция ищущая минимум в строке (записывает значения в новый массив)
min (array, mini, n);
//вывод массивов поочередности
for (int u = 0; u < n; u++)
cout <<" B." << u + 1 <<" = " << maxi[u] <<" "<< mini[u] << endl;
return 0;
}
Для начала, заданные условия трудно понять. В процессе написания кода я, кажется, разобрался по комментариям к min
и max
, что требуется.
x == y
, находим максимум в каждом столбце и минимум в каждой строке матрицы.#include <iostream>
void max(const int* const* const& matrix, int* const& result, const size_t& n) {
for (size_t x = 0; x < n; x++) {
size_t k = 0;
for (size_t y = 0; y < n; y++)
if (matrix[y][x] >= matrix[k][x])
k = y;
result[x] = matrix[k][x];
}
}
void min(const int* const* const& matrix, int* const& result, const size_t& n) {
for (size_t y = 0; y < n; y++) {
size_t k = 0;
for (size_t x = 0; x < n; x++)
if (matrix[y][x] <= matrix[y][k])
k = x;
result[y] = matrix[y][k];
}
}
int main() {
int** matrix;
int* max_store;
int* min_store;
size_t n;
std::cin >> n;
matrix = new int*[n];
max_store = new int[n];
min_store = new int[n];
for (size_t i = 0; i < n; i++) {
matrix[i] = new int[n];
for (size_t j = 0; j < n; j++)
std::cin >> matrix[i][j]; // ввели массив
}
max(matrix, max_store, n);
min(matrix, min_store, n);
for (size_t iteration = 0; iteration < n; iteration++)
std::cout << "B." << iteration << ": " << max_store[iteration] << " " << min_store[iteration] << std::endl;
}
На вводе ожидается что-то в виде:
3
4 3 2
7 1 23
9 10 11
На выходе получится:
B.1: 9 2
B.2: 10 1
B.3: 23 9
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Нужна помощь с написанием программы на С++, а именно алгоритма Габова нахождения кратчайших путей с помощью масштабированияВся сложность...
Я в бесконечном цикле создаю массив векторов, которые заполняю значениями (значения типа double), в конце прохода цикла я освобождаю память под...
Всего на сайте 4 слайдера, интересует второй в секции "Реализованные объекты"
Нужно реализовать удаление строки из базы данных при вводе номера этой строки (id_depositor) в текстовое поле id_depositorFieldДобавление новых записей...