Здравствуйте, я пытаюсь сортировать пузырьки в C++
Я должен написать программу на c++, которая печатает 2d массив из N и M случайных чисел. N и M вводятся пользователем. Затем мне нужно найти наибольшее значение в каждой строке и отсортировать его в порядке возрастания с помощью пузырьковой сортировки.
Ниже приводится правильное объяснение этой проблемы:
Напишите программу, которая заполняет значения двумерного массива A[N,M] случайными числами от 10 до 90 и определяет наибольшее значение в каждой строке. Строки с наибольшими значениями элементов располагаются в порядке возрастания, используя алгоритм сортировки "пузырь". N и M вводимые пользователем.
Что я уже пробовал:
#include <iostream> #include <cstdlib> #include <ctime> using namespace std; int main() { srand(time(0)); int i, j, r, c, temp = 0; cout << " how many rows?"; cin >> r; cout << "how many cloumns?"; cin >> c; int a[r][c]; for (i = 0; i<r; i++) { for (j = 0; j<c; j++) { a[i][j] = rand() % 80 + 10; } cout << endl; } cout << endl; for (i = 0; i<r; i++) { for (j = 0; j<c; j++) { cout << " " << a[i][j]; } cout << endl; } for (int i = 0; i < r; i++) { int max = a[i][0]; for (int j = 1; j < c; j++) { if (a[i][j] > max) { max = a[i][j]; } } cout << "Highest value in row " << i << " is: " << max << endl; } for (int i = 0; i < r; i++) { int max = a[i][0]; for (int j = 1; j - 1 < c; j++) { if (max > a[j + 1]) { temp = max; max = a[j + 1]; a[j + 1] = temp; } } } for (int i = 0; i < r; i++) { cout << a[i][j]; } }
Patrice T
А у вас есть вопрос ?
Rick York
Некоторые советы по кодированию : используйте некоторые функции для различных аспектов программы, таких как заполнение массива и сортировка строк. Я бы заставил функции работать по одной строке матрицы за раз. В качестве аргументов они будут принимать указатель на строку и количество элементов в строке.
CPallini
Почему бы вам не использовать std::vector?