Язык C++. Сформировать двухмерный динамический массив целых чисел. Переставить строчки массива
Язык C++. Сформировать двухмерный динамический массив целых чисел. Переставить строчки массива в соответствии с увеличением суммы частей строк.
Задать свой вопросИсходя из того, что вы мало прошли, я написал программку по вашему заданию без всяких наворотов. Употреблялся динамический массив.
include lt;iostreamgt;
include lt;clocalegt;
include lt;cstdlibgt;
int sum_arr(int arr[], int size)
int sum = 0;
for (int i = 0; i lt; size; i++)
sum += arr[i];
return sum;
void swap_arr(int arr1[], int arr2[], int size)
for (int i = 0; i lt; size; i++)
std::swap(arr1[i], arr2[i]);
int main()
int N, M;
std::cin gt;gt; N gt;gt; M;
int** arr = new int* [N];
for (int i = 0; i lt; N; i++)
arr[i] = new int[M];
for (int i = 0; i lt; N; i++)
for (int j = 0; j lt; M; j++)
arr[i][j] = std::rand() % 100;
//вывод
for (int i = 0; i lt; N; i++)
for (int j = 0; j lt; M; j++)
std::cout lt;lt; arr[i][j] lt;lt; " ";
std::cout lt;lt; std::endl;
std::cout lt;lt; std::endl lt;lt; std::endl;
for (int i = 0; i lt; N-1; i++)
if (sum_arr(arr[i], M) gt; sum_arr(arr[i + 1], M))
swap_arr(arr[i], arr[i + 1], M);
//вывод
for (int i = 0; i lt; N; i++)
for (int j = 0; j lt; M; j++)
std::cout lt;lt; arr[i][j] lt;lt; " ";
std::cout lt;lt; std::endl;
for (int i = 0; i lt; N; i++)
delete[] arr[i];
delete[] arr;
std::system("PAUSE gt;gt; void");
return 0;
include lt;iostreamgt;
include lt;vectorgt;
include lt;randomgt;
int rand_num(int min, int max)
std::random_device rd;
std::mt19937 rng(rd());
std::uniform_int_distributionlt;intgt; uni(min, max);
auto random_integer = uni(rng);
return random_integer;
int sum_vec(std::vectorlt;intgt; v)
int sum = 0;
for (auto amp;num : v)
sum += num;
return sum;
void print_vec_2d(const std::vectorlt;std::vectorlt;intgt;gt;amp; v)
for (int i = 0; i lt; v.size(); ++i)
for (int j = 0; j lt; v[i].size(); ++j)
std::cout lt;lt; v[i][j] lt;lt; " ";
std::cout lt;lt; std::endl;
void sort_vec_2d(std::vectorlt;std::vectorlt;intgt;gt;amp; v)
for (int i = 0; i lt; v.size(); ++i)
for (int j = i + 1; j lt; v.size(); ++j)
if (sum_vec(v[i]) gt; sum_vec(v[j]))
std::swap(v[i], v[j]);
void rand_vec_2d(std::vectorlt;std::vectorlt;intgt;gt;amp; v, int min, int max)
v.resize(rand_num(min, max));
for (int i = 0; i lt; v.size(); ++i)
for (int j = 0; j lt; rand_num(min, max); ++j)
v[i].push_back(rand_num(min, max));
int main()
setlocale(LC_ALL, "Russian");
std::vectorlt;std::vectorlt;intgt;gt; nums;
rand_vec_2d(nums, 1, 10);
std::cout lt;lt; "Исходынй вектор: " lt;lt; std::endl;
print_vec_2d(nums);
sort_vec_2d(nums);
std::cout lt;lt; "Приобретенный вектор: " lt;lt; std::endl;
print_vec_2d(nums);
//system("pause");
-
Вопросы ответы
Статьи
Информатика
Статьи
Математика.
Физика.
Математика.
Разные вопросы.
Разные вопросы.
Математика.
Разные вопросы.
Математика.
Физика.
Геометрия.