Вывести на экран строки с максимальным и минимальным значением суммы
Подскажите пожалуйста как именно осуществить главное условие, если я уже нашел сумму для каждой строки. Теперь нужно найти строки с максимальным и минимальным значением суммы. Как это все осуществляется,я знаю только как максимальный элемент находить,а именно со значением суммы всей строки без понятия,начинал делать получалась ахинея которая даже не запускалась:(. P.S Вот код
#include <iostream>
using namespace std;
void sum(int** V,int n,int m);
void main()
{
// создание матрицы n строк m столбцов
setlocale(LC_ALL,"Rus");
int n,m;
cout<<"Количество строк :?";
cin>>n;
cout<<"Количество столбцов :?";
cin>>m;
int** V=new int*[n]; // выделение памяти
for(int i=0;i<n;i++)
{
V[i]=new int[m];
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
V[i][j] = rand() % 10; // генерируем случайные числа они в массиве будут от 0до10. // для ввода чисел в ручную используем cin>>V[i][j];
cout<<V[i][j]<<"\t"; // вывод массива
}
cout<<endl;
}
sum(V,n,m);
for(int i=0;i<n;i++) // освобождение памяти массива
delete[] V[i];
delete[] V;
system("pause");
}
void sum(int** V,int n,int m)
{
int max,min;
max=min=0;
int max_index,min_index;
max_index=min_index=0;
for(int i=0;i<n;i++)
{
int sum=0;
for(int j=0;j<m;j++)
{
sum+=V[i][j]; // подсчет суммы в каждой строке
}
cout<<i+1<<" строка, сумма = " << sum<< endl;
}
}
Ответы (1 шт):
Автор решения: Mikhailo
→ Ссылка
#include <iostream>
using namespace std;
void sum(int** V, int n, int m, int& min_index, int& max_index);
int main() {
// создание матрицы n строк m столбцов
setlocale(LC_ALL,"Rus");
int n, m;
cout << "Количество строк :?";
cin >> n;
cout << "Количество столбцов :?";
cin >> m;
int** V = new int* [n]; // выделение памяти
for (int i = 0; i < n; i++) {
V[i] = new int[m];
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
V[i][j] = rand() %
10; // генерируем случайные числа они в массиве будут от 0до10. // для ввода чисел в ручную используем cin>>V[i][j];
cout << V[i][j] << "\t"; // вывод массива
}
cout << endl;
}
int min_index, max_index;
sum(V, n, m, min_index, max_index);
cout << "min line:\n";
for (int j = 0; j < m; j++)
cout << V[min_index][j] << "\t";
cout << endl;
cout << "max line:\n";
for (int j = 0; j < m; j++)
cout << V[max_index][j] << "\t";
cout << endl;
for (int i = 0; i < n; i++) // освобождение памяти массива
delete[] V[i];
delete[] V;
}
void sum(int** V, int n, int m, int& min_index, int& max_index) {
int max, min;
max = INT_MIN;
min = INT_MAX;
max_index = min_index = -1;
for (int i = 0; i < n; i++) {
int sum = 0;
for (int j = 0; j < m; j++) {
sum += V[i][j]; // подсчет суммы в каждой строке
}
cout << i + 1 << " строка, сумма = " << sum << endl;
if (sum > max) {
max = sum;
max_index = i;
}
if (sum < min) {
min = sum;
min_index = i;
}
}
}