online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code    Language
#include <iostream> #include <vector> #include <algorithm> using namespace std; // Функция для подсчета суммы лидирующих нулей в строке int countLeadingZeros(const vector<int>& row) { int count = 0; for (int i = 0; i < row.size(); i++) { if (row[i] == 0) { count++; } else { break; } } return count; } // Функция для перестановки столбцов в матрице void permuteColumns(vector<vector<int>>& matrix) { // Создаем вектор пар (сумма лидирующих нулей, индекс столбца) vector<pair<int, int>> sums; for (int i = 0; i < matrix[0].size(); i++) { int sum = 0; for (int j = 0; j < matrix.size(); j++) { sum += countLeadingZeros(matrix[j]); } sums.push_back(make_pair(sum, i)); // Переставляем столбцы в порядке убывания суммы лидирующих нулей sort(sums.rbegin(), sums.rend()); for (int i = 0; i < matrix.size(); i++) { for (int j = 0; j < matrix[0].size(); j++) { swap(matrix[i][j], matrix[i][sums[j].second]); } } } } int main() { // Пример матрицы 4x4 vector<vector<int>> matrix = { {1, 0, 1, 0}, {1, 0, 0, 0}, {0, 1, 1, 0}, {1, 0, 1, 1} }; // Вывод исходной матрицы cout << "Исходная матрица:" << endl; for (int i = 0; i < matrix.size(); i++) { for (int j = 0; j < matrix[0].size(); j++) { cout << matrix[i][j] << " "; } cout << endl; } // Перестановка столбцов permuteColumns(matrix); // Вывод результирующей матрицы cout << "Результирующая матрица:" << endl; for (int i = 0; i < matrix.size(); i++) { for (int j = 0; j < matrix[0].size(); j++) { cout << matrix[i][j] << " "; } cout << endl; } return 0; }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue