Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычислить сумму факториалов 1!+2!+3! http://www.cyberforum.ru/cpp-beginners/thread1388980.html
прибавление фактариалов
C++ Обработка матрицы Ввести квадратную матрицу порядка n. Найти в матрице максимум каждого столбца и минимум каждой строки. Наибольший максимум заменить на сумму минимумов, если максимумов несколько, то заменить все. http://www.cyberforum.ru/cpp-beginners/thread1388971.html
C++ Бинарные операторы
Почему бинарные операторы являются внешними функциями (операторами) по отношению к классу? Почему запрещают создавать операторные функции челены класса с двумя аргументами? Почему архитектурно это...
Объявление переменной внутри цикла while C++
Доброго времени суток, форумчане. Расскажите нубу, что происходит при объявлении объявленной переменной. Знаю, звучит глупо, посему объясняю, с чего мне такой бред вообще в голову то стукнул... На...
C++ Функция, возвращающая умный указатель http://www.cyberforum.ru/cpp-beginners/thread1388936.html
Здравствуйте, помогите пожалуйста создать функцию, возвращающую умный указатель. Мой вариант не рабочий: class InterfaceVideo{ public: virtual CVideo* Creating()=0; virtual CVideo*...
C++ В одномерном массиве вычислить сумму элементов между первым и последним нулевыми элементами в одномерном массиве состоящем из n вещественных элементов вычислить сумму элементов между первым и последним нулевыми элементами Решите ктонибудь пожалуйста... подробнее
Ofigen4ik
0 / 0 / 1
Регистрация: 04.12.2013
Сообщений: 25
0

Передача двумерного динамического массива в функцию построчно и сортировка

06.03.2015, 09:09. Просмотров 578. Ответов 1
Метки (Все метки)

Всем доброго времени суток! Собственно сабж: есть двумерный динамический массив, который надо делить на одномерные и передавать в функцию для последующей сортировки.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <iostream>
#include <ctime>
#include <iomanip>
#include <windows.h>
using namespace std;
 
void inputArray(int** arr, int n, int m);
void outputArray(int** arr, int n, int m);
void sortRows(int* row, int m);
 
int main() {
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    srand(time(0));
    int n = 5, m = 5;
    int** ptrarr = new int*[n];
    for(int i = 0; i < n; i++)
        ptrarr[i] = new int[m];
    inputArray(ptrarr, n, m);
    cout << "Исходный массив: " << endl;
    outputArray(ptrarr, n, m);  
    for(int i = 0; i < n; i++) {
        int* ptrrow = new int[m];
        for(int j = 0; j < m; j++) {
            ptrrow[j] = ptrarr[i][j];
            sortRows(ptrrow, m);
            ptrarr[i][j] = ptrrow[j];
        }
        delete[] ptrrow;
    }
    cout << endl << "Отсортированный массив: " << endl;
    outputArray(ptrarr, n, m);
    for(int i = 0; i < n; i++)
        delete[] ptrarr[i];
    delete[] ptrarr;
    return 0;
}
 
void inputArray(int** arr, int n, int m) {
    for(int i = 0; i < n; i++)
        for(int j = 0; j < m ; j++)
            arr[i][j] = rand()%100 - 50;
}
 
void outputArray(int** arr, int n, int m) {
    for(int i = 0; i < n; i++) {
        cout << endl << "  ";
        for(int j = 0; j < m; j++)
            cout << setw(3) << arr[i][j] << "  ";
    }
}
 
void sortRows(int* row, int m) {
 
int tmp, i, j;
    for(i = 0; i < m - 1; i++) {            
        for(j = 0; j < m - 1; j++) {     
            if (row[j + 1] < row[j]) {
                tmp = row[j + 1]; 
                row[j + 1] = row[j]; 
                row[j] = tmp;
            }
        }
    }
}
Но сортировка выполняется совершенно не так как надо, пробовал и бабл сорт, и вставки и выбором, все равно появляются левые числа.

Вернуться к обсуждению:
Передача двумерного динамического массива в функцию построчно и сортировка
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2015, 09:09
Готовые ответы и решения:

Передача динамического двумерного массива в функцию
Я сделал вот так: void PrintMatrix(int** matrix, int&amp; n, int&amp; m) { for (int i = 0; i &lt; n;...

Передача двумерного динамического массива в функцию
Как можно передать динамическую матрицу в функцию что бы при выходе из функции она оставила прежние...

Передача двумерного динамического массива в функцию(объяснение)
Когда мы хотим передать двумерный динамический массив в функцию через указатели (**a) , то в теле...

Передача по ссылке двумерного динамического массива в функцию
Приведите, пожалуйста, пример. Нигде не могу найти.

Передача двумерного динамического массива чисел в функцию
void Map::setCell(int** block, Room* room, int type){ for(int i=room-&gt;x; i&lt;room-&gt;w; ++i)...

1
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru