Кто поможет с задачей, буду очень благодарен. Мой код работает красиво в первых тестах, а потом ошибается, не знаю в чём дело :( Спасибо заранее за помощь!
Задача:
Дана матрица размера M × N. Найти минимальный среди максимальных элементов ее столбцов.
Ввод
3 3
1 2 3
4 5 6
7 8 9
Вывод
7
Примечания:
Условие вида «дана матрица размера M × N» означает, что вначале дается фактический размер двумерного массива-матрицы (количество строк M и количество столбцов N), а затем приводятся элементы этого массива (количество элементов равно M·N).
Если в задании явно не указывается, какие значения могут принимать размеры исходной матрицы, то предполагается, что и число строк, и число столбцов может меняться.
Порядковые номера начальной строки и начального столбца матрицы считаются равными 1.
Ввод и вывод элементов матрицы осуществляются по строкам.
Квадратной матрицей порядка M называется двумерный массив-матрица размера M × M.
Если в задании, связанном с созданием (преобразованием) матрицы, не описан результирующий набор данных, то предполагается, что этим набором является созданная (преобразованная) матрица, и необходимо вывести все ее элементы.
МОЙ КОД:
#include <iostream>
#include <vector>
using namespace std;
int main() {
int M, N;
cin >> M >> N;
float array[500][500];
for (int i = 0; i < M; i++) {
for (int j = 0; j < N; j++) {
float temp;
cin >> temp;
array[i][j] = temp;
}
}
vector <float> Q;
for (int i = 0; i < M; i++) {
float min = array[0][i];
for (int j = 0; j < N; j++) {
if (array[j][i] > min) min = array[j][i];
}
Q.push_back(min);
}
float result = Q[0];
for (auto now : Q) {
if (now < result) result = now;
}
cout << result;
return 0;
}
C/C++
Нужна помощь с задачей на С++
#include
using namespace std;
int main() {
size_t m, n;
cin >> m >> n;
auto matrix = new(nothrow) int* [m];
if (matrix != nullptr) {
for (size_t i = 0; i < m; ++i) {
matrix[i] = new(nothrow) int[n];
if (matrix[i] == nullptr) {
for (size_t j = 0; j < i; ++j) {
delete[] matrix[j];
}
delete[] matrix;
matrix = nullptr;
return 1;
}
}
for (size_t i = 0; i < m; ++i) {
for (size_t j = 0; j < n; ++j) {
cin >> matrix[i][j];
}
}
auto box = new int[n];
for (size_t j = 0; j < n; ++j) {
box[j] = matrix[0][j];
for (size_t i = 1; i < m; ++i) {
if (matrix[i][j] > box[j]) {
box[j] = matrix[i][j];
}
}
}
auto min = box[0];
for (size_t i = 1; i < n; ++i) {
if (box[i] < min) {
min = box[i];
}
}
cout
вместо статического array посмотри на malloc()
и нумерация в С не с "1" а с "0" -- это тоже надо учитывать
и нумерация в С не с "1" а с "0" -- это тоже надо учитывать
#include
#include
#include
using namespace std;
int main()
{
size_t str, col;
cin >> str >> col;
vector matrx(str * col);
for (auto& i : matrx) cin >> i;
vector minimals(matrx.begin(), matrx.begin() + col);
for (size_t i = 1; i < str; i++)
for (size_t j = 0; j < col; j++)
minimals[j] = max(minimals[j], matrx[i * col + j]);
cout > str >> col;
vector matrx(col);
for (auto& i : matrx) cin >> i;
str--;
while (str--) for (auto& i : matrx) { cin >> tmp; i = max(i, tmp); }
cout
Артём Сашко
Спасибо
Похожие вопросы
- Нужна помощь с задачей по c++
- Нужна помощь с задачей по программированию С++ С# Или так или так
- Нужна помощь при решении задачи в c++
- Программирование, нужна помощь в решение задачи! На си или си++
- Нужна помощь с выполнением заданий в C++
- Помощь с задачей на Си (C)
- Нужна помощь в составлении одномерных массивов С++
- C++.Нужна помощь в написании кода.
- Очень нужна помощь. нужен код на C. Задачка будет в описании.
- Нужна помощь с написанием кода на языке "С"