Другие языки программирования и технологии
Программа на Си, С++
Дана квадратная матрица. Отсортировать столбцы по убыванию количества отрицательных элементов в них.
#include < iostream >
#include < iomanip >
#include < ctime >
#include < algorithm >
int main() {
const size_t n = 6;// Размер матрицы
int arr[n][n];// Матрица
using Counter = std::pair< size_t, size_t >;// Пара <индекс столбца, счетчик отричательных элементов>
Counter counters[n];// Массив пар
for (size_t i = 0; i < n; i++) {
counters[i].first = i;
counters[i].second = 0;
}
srand((unsigned)time(nullptr));
for (size_t i = 0; i < n; i++) {// Заполнение случайными числами и вывод
for (size_t j = 0; j < n; j++) {
arr[i][j] = -50 + rand() % 101;
if (arr[i][j] < 0)
counters[j].second++;// Подсчет
std::cout << std::setw(4) << arr[i][j];
}
std::cout << '\n';
}
std::sort(counters, counters + n, [](const Counter& a, const Counter& b) {
return a.second > b.second;
});
int sortedArr[n][n];// Новая отсортированная матрица
for (size_t i = 0; i < n; i++) {
for (size_t j = 0; j < n; j++)
sortedArr[j][i] = arr[j][counters[i].first];
}
std::cout << '\n';
for (size_t i = 0; i < n; i++) {// Вывод новой матрицы
for (size_t j = 0; j < n; j++)
std::cout << std::setw(4) << sortedArr[i][j];
std::cout << '\n';
}
return 0;
}
#include < iomanip >
#include < ctime >
#include < algorithm >
int main() {
const size_t n = 6;// Размер матрицы
int arr[n][n];// Матрица
using Counter = std::pair< size_t, size_t >;// Пара <индекс столбца, счетчик отричательных элементов>
Counter counters[n];// Массив пар
for (size_t i = 0; i < n; i++) {
counters[i].first = i;
counters[i].second = 0;
}
srand((unsigned)time(nullptr));
for (size_t i = 0; i < n; i++) {// Заполнение случайными числами и вывод
for (size_t j = 0; j < n; j++) {
arr[i][j] = -50 + rand() % 101;
if (arr[i][j] < 0)
counters[j].second++;// Подсчет
std::cout << std::setw(4) << arr[i][j];
}
std::cout << '\n';
}
std::sort(counters, counters + n, [](const Counter& a, const Counter& b) {
return a.second > b.second;
});
int sortedArr[n][n];// Новая отсортированная матрица
for (size_t i = 0; i < n; i++) {
for (size_t j = 0; j < n; j++)
sortedArr[j][i] = arr[j][counters[i].first];
}
std::cout << '\n';
for (size_t i = 0; i < n; i++) {// Вывод новой матрицы
for (size_t j = 0; j < n; j++)
std::cout << std::setw(4) << sortedArr[i][j];
std::cout << '\n';
}
return 0;
}
while(s != "Пока сам не напишешь")
{
cout << "Никто это не сделает за вас" << endl;
}
{
cout << "Никто это не сделает за вас" << endl;
}
Похожие вопросы
- Помогите написать пару программ на СИ
- Программа на Си
- Помогите с программой на си! Программа в описании
- Нужна помощь)) Есть условие задачи для создания программы на СИ++
- Требуется помощь с программа на СИ
- Помогите пожалуйста составить программу на СИ++. Заранее всем БЛАГОДАРЕН!
- Помогите исправить ошибку в программе на Си
- Написать программу на Си
- Программа на Си (не С++), Поля, Для экспертов.
- Как доделать программу в Си?