Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int sum(int* a, int n)
- {
- int result = 0;
- for (int i = 0; i < n; i++)
- {
- result += a[i];
- }
- return result;
- }
- void SUMRESULT(int** a, int n, int m)
- {
- for (int i = 0; i < n; i++)
- {
- for (int j = 0; j < m; j++)
- {
- cout << a[i][j] << " ";
- }
- cout << " Сумма строки = " << sum(a[i], m) << endl;
- }
- cout << endl;
- }
- int main()
- {
- setlocale(LC_ALL, "RUS");
- int ROW = 0, COL = 0;
- cout << "Введите количество строчек в матрице: ";
- cin >> ROW;
- if (cin.fail() || ROW > 20 || ROW < 2)
- {
- cout << "Неверная размерность для строк!" << endl;
- return -1;
- }
- cout << "Введите количество столбцов в матрице: ";
- cin >> COL;
- if (cin.fail() || COL > 20 || COL < 2)
- {
- cout << "Неверная размерность для столбцов!" << endl;
- return -2;
- }
- int** MATR = new int* [ROW];
- for (auto i = 0; i < ROW; i++)
- {
- MATR[i] = new int[COL];
- }
- for (int i = 0; i < ROW; i++)
- {
- for (int j = 0; j < COL; j++)
- {
- MATR[i][j] = 0;
- cout << "Введите элемент " << (i + 1) << "-ой строки, " << (j + 1) << "-го столбца: ";
- cin >> MATR[i][j];
- if (cin.fail())
- {
- cout << "Вы ввели не число!" << endl;
- return -3;
- }
- }
- cout << endl;
- }
- cout << "Введённая матрица:" << endl;
- for (int i = 0; i < ROW; i++)
- {
- for (int j = 0; j < COL; j++)
- {
- cout << MATR[i][j] << " ";
- }
- cout << endl;
- }
- cout << endl;
- /*Перестроить заданную прямоугольную матрицу, переставляя в ней строки так,
- чтобы сумма элементов в строках полученной матрицы возрастала*/
- for (int i = 0; i < ROW - 1; i++)
- {
- int maxSum = sum(MATR[i], COL);
- int maxPos = i;
- for (int ii = i + 1; ii < ROW; ii++)
- {
- int s = sum(MATR[ii], COL);
- if (s < maxSum)
- {
- maxSum = s;
- maxPos = ii;
- }
- }
- int* t = MATR[i];
- MATR[i] = MATR[maxPos];
- MATR[maxPos] = t;
- }
- SUMRESULT(MATR, ROW, COL);
- //- найти в ней номер первого из столбцов, не содержащих отрицательных элементов.
- int NUM = 0;
- for (int j = 0; j < COL; j++)
- {
- for (int i = 0; i < ROW; i++)
- {
- if (MATR[i][j] < 0)
- {
- break;
- }
- else
- {
- NUM++;
- if (NUM == ROW)
- {
- int STLB = j + 1;
- cout << "Столбец №" << STLB
- << " первый из столбцов, не содержащих отрицательных элементов " << endl;
- break;
- }
- }
- }
- if (NUM == ROW)
- {
- break;
- }
- cout << endl;
- }
- cout << endl;
- for (int i = 0; i < ROW; i++)
- {
- delete[] MATR[i];
- }
- delete[] MATR;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement