Всем привет, помогите пожалуйста уже два дня ламаю голову как сделать.Нужно отсортировать двухмерный масив с помощю bubble sort. Вот Код если с помощью циклов то отлично работает, а чере функицю просто 1 на вывод. #include <iostream> #include <iomanip> #include <cstdlib> using namespace std; void bubble(int** arr, int n , int m) { for (int k = 0; k <= (n*m); k++) { for(int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (i + 1 == n and j + 1 == m) { continue; } else { if (j + 1 == m and arr[i][j] > arr[i+1][0]) { swap(arr[i][j], arr[i + 1][0]); } else { if(arr[i][j] > arr[i][j+1]) { swap(arr[i][j],arr[i][j + 1]); } } } } } } } int main() { int n = 5, m = 8; int k = 4; int arr[n][m]; srand(time(NULL)); for (int i = 0; i < n; i++){ //заполнения масива for (int j = 0; j < m; j++) { arr[i][j] = rand()%100; } } cout << "Исходный масив" << endl; for (int i = 0; i < n; i++){ // вывод исходного масива for (int j = 0; j < m; j++) { cout << setw(k) << arr[i][j]; } cout << endl; } // сортировка cout << "масив" << endl; for (int i = 0; i < n; i++){ // вывод отсортированого масива for (int j = 0; j < m; j++) { cout << setw(k) << bubble[i][j] ; } cout << endl; } return 0; } Код #include <iostream> #include <iomanip> #include <cstdlib> using namespace std; void bubble(int** arr, int n , int m) { for (int k = 0; k <= (n*m); k++) { for(int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (i + 1 == n and j + 1 == m) { continue; } else { if (j + 1 == m and arr[i][j] > arr[i+1][0]) { swap(arr[i][j], arr[i + 1][0]); } else { if(arr[i][j] > arr[i][j+1]) { swap(arr[i][j],arr[i][j + 1]); } } } } } } } int main() { int n = 5, m = 8; int k = 4; int arr[n][m]; srand(time(NULL)); for (int i = 0; i < n; i++){ //заполнения масива for (int j = 0; j < m; j++) { arr[i][j] = rand()%100; } } cout << "Исходный масив" << endl; for (int i = 0; i < n; i++){ // вывод исходного масива for (int j = 0; j < m; j++) { cout << setw(k) << arr[i][j]; } cout << endl; } // сортировка cout << "масив" << endl; for (int i = 0; i < n; i++){ // вывод отсортированого масива for (int j = 0; j < m; j++) { cout << setw(k) << bubble[i][j] ; } cout << endl; } return 0; }
Нужно сделать сортировку двухмерного массива с помощью bubble sort. Но когда программа запускается то на выходе 1 1 1 1
нихера не понятно. блять, вот зачем лолз добавлял , если ей никто не пользуется. Код , если ей никто не пользуется.
#include <iostream> #include <iomanip> #include <cstdlib> using namespace std; void bubble(int** arr, int n , int m) { for (int k = 0; k <= (n*m); k++) { for(int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (i + 1 == n and j + 1 == m) { continue; } else { if (j + 1 == m and arr[i][j] > arr[i+1][0]) { swap(arr[i][j], arr[i + 1][0]); } else { if(arr[i][j] > arr[i][j+1]) { swap(arr[i][j],arr[i][j + 1]); } } } } } } } int main() { int n = 5, m = 8; int k = 4; int arr[n][m]; srand(time(NULL)); for (int i = 0; i < n; i++){ //заполнения масива for (int j = 0; j < m; j++) { arr[i][j] = rand()%100; } } cout << "Исходный масив" << endl; for (int i = 0; i < n; i++){ // вывод исходного масива for (int j = 0; j < m; j++) { cout << setw(k) << arr[i][j]; } cout << endl; } // сортировка cout << "масив" << endl; for (int i = 0; i < n; i++){ // вывод отсортированого масива for (int j = 0; j < m; j++) { cout << setw(k) << bubble[i][j] ; } cout << endl; } return 0; } Код #include <iostream> #include <iomanip> #include <cstdlib> using namespace std; void bubble(int** arr, int n , int m) { for (int k = 0; k <= (n*m); k++) { for(int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (i + 1 == n and j + 1 == m) { continue; } else { if (j + 1 == m and arr[i][j] > arr[i+1][0]) { swap(arr[i][j], arr[i + 1][0]); } else { if(arr[i][j] > arr[i][j+1]) { swap(arr[i][j],arr[i][j + 1]); } } } } } } } int main() { int n = 5, m = 8; int k = 4; int arr[n][m]; srand(time(NULL)); for (int i = 0; i < n; i++){ //заполнения масива for (int j = 0; j < m; j++) { arr[i][j] = rand()%100; } } cout << "Исходный масив" << endl; for (int i = 0; i < n; i++){ // вывод исходного масива for (int j = 0; j < m; j++) { cout << setw(k) << arr[i][j]; } cout << endl; } // сортировка cout << "масив" << endl; for (int i = 0; i < n; i++){ // вывод отсортированого масива for (int j = 0; j < m; j++) { cout << setw(k) << bubble[i][j] ; } cout << endl; } return 0; }
#include <stdio.h> void swap(int *xp, int *yp) { int temp = *xp; *xp = *yp; *yp = temp; } void bubbleSort(int arr[], int n) { int i, j; bool swapped; for (i = 0; i < n-1; i++) { swapped = false; for (j = 0; j < n-i-1; j++) { if (arr[j] > arr[j+1]) { swap(&arr[j], &arr[j+1]); swapped = true; } } if (swapped == false) break; } } void printArray(int arr[], int size) { int i; for (i=0; i < size; i++) printf("%d ", arr[i]); printf("n"); } int main() { int arr[] = {64, 34, 25, 12, 22, 11, 90}; int n = sizeof(arr)/sizeof(arr[0]); bubbleSort(arr, n); printf("Sorted array: \n"); printArray(arr, n); return 0; } Код #include <stdio.h> void swap(int *xp, int *yp) { int temp = *xp; *xp = *yp; *yp = temp; } void bubbleSort(int arr[], int n) { int i, j; bool swapped; for (i = 0; i < n-1; i++) { swapped = false; for (j = 0; j < n-i-1; j++) { if (arr[j] > arr[j+1]) { swap(&arr[j], &arr[j+1]); swapped = true; } } if (swapped == false) break; } } void printArray(int arr[], int size) { int i; for (i=0; i < size; i++) printf("%d ", arr[i]); printf("n"); } int main() { int arr[] = {64, 34, 25, 12, 22, 11, 90}; int n = sizeof(arr)/sizeof(arr[0]); bubbleSort(arr, n); printf("Sorted array: \n"); printArray(arr, n); return 0; }