Top.Mail.Ru
Ответы

Нужна помощь с задачей на С++

Кто поможет с задачей, буду очень благодарен. Мой код работает красиво в первых тестах, а потом ошибается, не знаю в чём дело :( Спасибо заранее за помощь!

Задача:

Дана матрица размера 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;
}

По дате
По рейтингу
Аватар пользователя
Новичок
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
 #include <iostream> 
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 << min << '\n'; 
        for (size_t i = 0; i < m; ++i) { 
            delete[] matrix[i]; 
        } 
        delete[] matrix; 
        matrix = nullptr; 
        return 0; 
    } 
    return 1; 
} 
Аватар пользователя
Гений
1234567891011121314151617
 #include <iostream>  
#include <vector>  
#include <algorithm> 
using namespace std; 
 
int main()  
{ 
	size_t str, col; 
	cin >> str >> col; 
	vector<int> matrx(str * col); 
	for (auto& i : matrx) cin >> i; 
	vector<int> 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 << *min_element(minimals.begin(), minimals.end()); 
} 
12345678910111213141516
 #include <iostream>  
#include <vector>  
#include <algorithm> 
using namespace std; 
 
int main()  
{ 
	size_t str, col; 
	int tmp; 
	cin >> str >> col; 
	vector<int> matrx(col); 
	for (auto& i : matrx) cin >> i; 
	str--; 
	while (str--) for (auto& i : matrx) { cin >> tmp; i = max(i, tmp); } 
	cout << *min_element(matrx.begin(), matrx.end()); 
} 
Аватар пользователя
Оракул

вместо статического array посмотри на malloc()
и нумерация в С не с "1" а с "0" -- это тоже надо учитывать