Форум программистов, компьютерный форум CyberForum.ru

Ошибки в программе сортировки Хоара двумерного массива в С++ - C++

Восстановить пароль Регистрация
 
Margooo
0 / 0 / 0
Регистрация: 23.02.2013
Сообщений: 5
23.02.2013, 21:12     Ошибки в программе сортировки Хоара двумерного массива в С++ #1
Составила программу на языке С++, создающую двумерный целочисленный массив и сортирующую его по строкам по методу Хоара. Программа не запускается. И постоянно выдается ошибка:"...QuickSort: функция не принимает 0 аргументов". Проблема также в том, что мне нужно отсортировать не одномерный, а двумерный массив, а я не понимаю как это сделать.Только начала работать с С++, поэтому не судите строго. Просьба помочь найти ошибки, чтобы программа заработала.


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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include<iostream>
using namespace std;
void QuickSort ( int **mtr, int from, int to )
{
int x, l, r, temp;
 
if ( from >= to )
 return;
 
l = from;
 
r = to;
 
x = mtr[(from+to)/2];
 
while ( l <= r ) 
{
while ( mtr[l] < x )
 l ++;
 
while ( mtr[r] > x )
 r --;
 
if ( l <= r ) 
{
temp = mtr[l]; 
mtr[l] = mtr[l]; 
mtr[r] = temp;
 
l ++;
 
r --;
}
}
QuickSort ( mtr, from, r );
QuickSort ( mtr, l, to );
}
int main()
{
int m = 0; //m-количество строк в массиве
int n = 0; //n-количество столбцов в массиве
 
//Задаём размерность массива 
printf("Enter array dimensions: ");
if (scanf("%d%d", &m, &n) == 2)
{
int **mtr = new int*[m];
for (int i = 0; i < m; i++)
mtr[i] = new int[n];
 
//Заполнение массива случайными числами
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
mtr[i][j] = rand() % 20+1;
}
}
//Вывод массива
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
printf("%d ", mtr[i][j]);
}
printf("\n");
}
 
QuickSort (**mtr);
 
printf("\nPosle: \n");
//Вывод отсортированного массива
 
for (int i = 0; i < m; i++)
{
 
for (int j = 0; j < n; j++)
{
 
printf("%d ", mtr[i][j]);
 
} 
printf("\n");
 
}
}
else printf("\nError!!\n");
system("pause");
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.02.2013, 21:12     Ошибки в программе сортировки Хоара двумерного массива в С++
Посмотрите здесь:

Не корректное выполнение сортировки двумерного массива C++
C++ Как правильно использовать Указатели для массива (ошибки в программе)?
функция сортировки двумерного массива C++
В программе определите дополнительный одномерный массив и заполните его значениями, вычисляемых как суммы элементов строк двумерного массива C++
C++ Исправить код для сортировки двумерного массива
C++ Помогите найти ошибку в программе сортировки массива
C++ Шаблонная функция сортировки двумерного массива
C++ Блок-схема к программе сортировки

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
iifat
2179 / 1332 / 96
Регистрация: 05.06.2011
Сообщений: 3,692
26.02.2013, 15:51     Ошибки в программе сортировки Хоара двумерного массива в С++ #2
С чего б начать...
С аккуратности, наверное. Если кажется, что всё понятно -- значит, чего-то не заметила.
И начинать с постановки задачи: чего надо-то? Отсортировать каждую строку? Или как-то таки отсортировать строки?
И только когда действительно ясно, чего надо добиться, можно начинать писать.
И никогда -- никогда! -- не писать
Цитата Сообщение от Margooo Посмотреть сообщение
C++
1
QuickSort (**mtr);
, если сама же написала чуть раньше
Цитата Сообщение от Margooo Посмотреть сообщение
C++
1
void QuickSort ( int **mtr, int from, int to )
И, чорт бы меня побрал, посмотреть же ж, как принято выкладывать программы на Цэ и чуть-чуть подумать: а почему так? А может, оно и правда лучше, чем пихать совершенно нечитабельную мешанину кода?
Для начала и хватит...
Yandex
Объявления
26.02.2013, 15:51     Ошибки в программе сортировки Хоара двумерного массива в С++
Ответ Создать тему
Опции темы

Текущее время: 02:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru