помогите составить программу. пожалуйста очень нужно!!
Дан целочисленный квадратный массив размера mxn, где m и n-натуральные числа. Найти наименьшее из значений елементов столбца, который обладает наибольшей суммой модулей елементов. В предположении, что таких столбцов несколько, сформировать массив из минимальный елементов таких столбцов.
Код:
#include <iostream>
#include <iomanip>
#include <ctime>
#include <array>
#include <iterator>
#include <algorithm>
#include <vector>
using namespace std;
void main() {
// Creatin' matrix mxn with random values
const int m(3), n(10);
srand(time(NULL));
int mat[m][n];
for(int i = 0; i < m; ++i )
for (int j = 0; j < n; ++j )
mat[i][j] = rand()%10;
for(int i = 0; i < m; ++i )
{
for (int j = 0; j < n; ++j )
cout << setw(2)<< mat[i][j] << " ";
cout << endl;
}
// count sums in cols , and record to array
array<int,n> sums;
int sum(0);
for(int j = 0; j < n; ++j)
{
sum = 0;
for( int i = 0; i < m; ++i )
{
sum += abs(mat[i][j]);
}
sums[j] = sum;
}
// display sums for each col
cout << endl;
for(auto it = sums.begin(); it != sums.end(); it++ )
cout << *it << " ";
// vector of answers
vector<int> answers;
// find max-element in sums
auto it_min_sum = max_element(sums.begin(), sums.end());
// find min-element in col with max sum
for(int j = 0 ; j < n; ++j)
if (sums[j] == *it_min_sum)
{
int min = mat[0][j];
for(int i = 1; i < m; ++i )
min = (mat[i][j]<min)?mat[i][j]:min;
answers.push_back(min);
}
// display answer
cout << endl;
for(vector<int>::iterator it = answers.begin(); it != answers.end(); it++)
cout << *it << " ";
return;
}
#include <iomanip>
#include <ctime>
#include <array>
#include <iterator>
#include <algorithm>
#include <vector>
using namespace std;
void main() {
// Creatin' matrix mxn with random values
const int m(3), n(10);
srand(time(NULL));
int mat[m][n];
for(int i = 0; i < m; ++i )
for (int j = 0; j < n; ++j )
mat[i][j] = rand()%10;
for(int i = 0; i < m; ++i )
{
for (int j = 0; j < n; ++j )
cout << setw(2)<< mat[i][j] << " ";
cout << endl;
}
// count sums in cols , and record to array
array<int,n> sums;
int sum(0);
for(int j = 0; j < n; ++j)
{
sum = 0;
for( int i = 0; i < m; ++i )
{
sum += abs(mat[i][j]);
}
sums[j] = sum;
}
// display sums for each col
cout << endl;
for(auto it = sums.begin(); it != sums.end(); it++ )
cout << *it << " ";
// vector of answers
vector<int> answers;
// find max-element in sums
auto it_min_sum = max_element(sums.begin(), sums.end());
// find min-element in col with max sum
for(int j = 0 ; j < n; ++j)
if (sums[j] == *it_min_sum)
{
int min = mat[0][j];
for(int i = 1; i < m; ++i )
min = (mat[i][j]<min)?mat[i][j]:min;
answers.push_back(min);
}
// display answer
cout << endl;
for(vector<int>::iterator it = answers.begin(); it != answers.end(); it++)
cout << *it << " ";
return;
}
#include <iomanip>
#include <array>
#include <iterator>
#include <algorithm>
#include <vector>
Зачем столько всего не нужного на такую простую задачу
Цитата: cronya
Задание трактовано некорректно. Найти наименьшее значение элементов столбца среди суммы элементов столбцов по модулю!? Это как бы 1 число и является суммой. Зачем так заумно было сочинять?
#include <iomanip>
#include <array>
#include <iterator>
#include <algorithm>
#include <vector>
#include <iomanip>
#include <array>
#include <iterator>
#include <algorithm>
#include <vector>
Зачем столько всего не нужного на такую простую задачу
А как тогда??