Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <iomanip>
- int* inputOfIntFromConsole(short MIN_N, short MAX_N)
- {
- int* n = new int;
- bool isIncorrect = true;
- do {
- std::cin >> *n;
- if (*n > MIN_N - 1 and *n < MAX_N + 1)
- {
- isIncorrect = false;
- } else
- {
- std::cout << "\tПожалуйста, введите целое число от " << MIN_N << " до " << MAX_N << ": ";
- }
- } while (isIncorrect);
- return n;
- }
- void inputOfArrFromConsole(int arr[5][5])
- {
- bool isIncorrect;
- const int MIN_ELEM = -1000000;
- const int MAX_ELEM = 1000000;
- int number;
- std::string input;
- for (int i = 0; i < 5; i++)
- {
- for (int j = 0; j < 5; j++)
- {
- std::cout << "\tЭлемент [" << i + 1 << "][" << j + 1 << "]: ";
- do
- {
- isIncorrect = false;
- getline(std::cin, input);
- try {
- number = stoi(input);
- } catch (...) {
- isIncorrect = true;
- }
- if (isIncorrect || number < MIN_ELEM || number > MAX_ELEM)
- {
- isIncorrect = true;
- std::cout << "\t\tПожалуйста, введите целое число от " << MIN_ELEM << " до " << MAX_ELEM << ": ";
- }
- } while (isIncorrect);
- arr[i][j] = number;
- }
- }
- }
- void outputOfArr(int arr[5][5])
- {
- std::cout.setf(std::ios::left);
- for (int i = 0; i < 5; i++)
- {
- for (int j = 0; j < 5; j++)
- {
- std::cout << std::setw(8) << arr[i][j];
- }
- std::cout << "\n";
- }
- }
- void changeArr(int arr[5][5])
- {
- int prevSum = 0;
- int sum;
- for (int k = 0; k < 5; k++)
- {
- for (int j = 0; j < 5 - k; j++)
- {
- sum = 0;
- for (int i = 0; i < 5; i++)
- {
- sum += arr[i][j];
- }
- if (j > 0 and sum > prevSum)
- {
- for (int ii = 0; ii < 5; ii++) {
- int temp = arr[ii][j];
- arr[ii][j] = arr[ii][j - 1];
- arr[ii][j - 1] = temp;
- }
- } else
- {
- prevSum = sum;
- }
- }
- }
- }
- int main(int argc, const char * argv[]) {
- std::cout << "\nДанная программа принимает массив 5 на 5 и сортирует столбцы в порядке убывания сумм элементов.\n";
- int arr[5][5];
- std::cout << "\nВведите массив:\n";
- inputOfArrFromConsole(arr);
- std::cout << "\nМассив:\n";
- outputOfArr(arr);
- changeArr(arr);
- std::cout << "\nПеределанный массив:\n";
- outputOfArr(arr);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment