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

Пузырьковая сортировка выкидывает ошибку... - C++

Восстановить пароль Регистрация
 
jvov
1 / 1 / 0
Регистрация: 28.09.2011
Сообщений: 113
26.04.2012, 18:20     Пузырьковая сортировка выкидывает ошибку... #1
Выкидывает вот такую ошибку - Run-Time Check Failure #3 - The variable 't' is being used without being initialized.
Что я не так сделал?

задание - обавить в определение структуры Пямоугольник оператор <, при этом считать меньшим прямоугольник
с меньшей площадью. Написать функцию, которая выполняет пузырьковую сортуровку массива типа Праямоугольник.
Прототип функции - void PSortRecangle(Rectangle *mas, int masLenght);

C++ (Qt)
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
struct Rectangle  
{
    unsigned int height;
    unsigned int width;
 
    bool operator > (const Rectangle &sg) // bool vozvras4aemyj tip &sg - ssylka prjamougolnik s menjshej ploshadju
    {
        return ((this->width * this->height) < (sg.width * sg.height)); 
    }
};
 
 
void PSortRectangle(Rectangle *arr, int size) // sortirovka
{  int a, b;
   Rectangle *t;
 
  for(a=1; a < size; ++a)
    for(b=size-1; b >= a; --b) {
      if(arr[b-1] > arr[b]) {
        /* exchange elements */
        *t = arr[b-1];
        arr[b-1] = arr[b];
        arr[b] = *t;
      }
    }
rectangle_print(&arr[0]);
};
int main()
{
PSortRectangle(&rectangle[0], ARR_SIZE);
system("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2012, 18:20     Пузырьковая сортировка выкидывает ошибку...
Посмотрите здесь:

пузырьковая сортировка C++
C++ Пузырьковая Сортировка
C++ Пузырьковая сортировка
C++ Пузырьковая сортировка
C++ Пузырьковая сортировка
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
26.04.2012, 18:23     Пузырьковая сортировка выкидывает ошибку... #2
Цитата Сообщение от jvov Посмотреть сообщение
Run-Time Check Failure #3 - The variable 't' is being used without being initialized
открываем переводчик и переводим, переменная t была использована без иницализации
ошибка тут
C++
1
2
Rectangle *t;
*t = arr[b-1];
переменная t НИКУДА не указывает и вы в это "НИКУДА" пытаетесь записать значение!
thick_int
Заблокирован
26.04.2012, 18:25     Пузырьковая сортировка выкидывает ошибку... #3
Очевидно, что в 22 строке и в 24 строке имеет место попытка разименовывания ни на что не ссылающегося указателя.
bz_
6 / 6 / 1
Регистрация: 10.04.2012
Сообщений: 31
26.04.2012, 18:31     Пузырьковая сортировка выкидывает ошибку... #4
Переменная t — временная, посему она и создается и удаляется в пределах цикла, в котором используется.
jvov
1 / 1 / 0
Регистрация: 28.09.2011
Сообщений: 113
26.04.2012, 18:40  [ТС]     Пузырьковая сортировка выкидывает ошибку... #5
Цитата Сообщение от panicwassano Посмотреть сообщение
открываем переводчик и переводим, переменная t была использована без иницализации
ошибка тут
C++
1
2
Rectangle *t;
*t = arr[b-1];
переменная t НИКУДА не указывает и вы в это "НИКУДА" пытаетесь записать значение!
а если я её делаю int, то выдает ошибку... Что не могу додуматься, что нужно изменить, что бы работало?
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
26.04.2012, 18:42     Пузырьковая сортировка выкидывает ошибку... #6
Сделайте через объекты, а не указатели.
C++
1
2
Rectangle t;
t = arr[b-1];
jvov
1 / 1 / 0
Регистрация: 28.09.2011
Сообщений: 113
26.04.2012, 21:35  [ТС]     Пузырьковая сортировка выкидывает ошибку... #7
Цитата Сообщение от antoha398 Посмотреть сообщение
Сделайте через объекты, а не указатели.
C++
1
2
Rectangle t;
t = arr[b-1];
Спасибо, теперь все работает, только вот сортируется наоборот

все -а заработало
вот эту строчку надо было поменять
C++
1
 if(arr[b+1] < arr[b]) {
Добавлено через 2 часа 34 минуты
fatal error C1075: end of file found before the left brace '{' at was matched

из за этой ошибки весь проект не запускается, вроде ругается на скобку такую { но вроде перепроверил все - верно. Что это может быть?


Скажите, что у меня не так в шаблоне сортировки, почему-то на него ругается компилятор?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
template<class Type> void bubble(Type *arr, int size) // wablon sortirovki
{
    {  int a, b;
   Type t;
 
  for(a=1; a < size; ++a)
    for(b=size-1; b >= a; --b) {
      if(arr[b+1] < arr[b]) {
        // exchange elements
        t = arr[b-1];
        arr[b-1] = arr[b];
        arr[b] = t;
      }
    }
};
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
26.04.2012, 21:36     Пузырьковая сортировка выкидывает ошибку... #8
после определения функции PSortRectangle уберите ;
jvov
1 / 1 / 0
Регистрация: 28.09.2011
Сообщений: 113
26.04.2012, 21:42  [ТС]     Пузырьковая сортировка выкидывает ошибку... #9
Цитата Сообщение от antoha398 Посмотреть сообщение
после определения функции PSortRectangle уберите ;
что-то не помогает? Или что вы имели ввиду?
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
26.04.2012, 21:46     Пузырьковая сортировка выкидывает ошибку... #10
ой.. я не туда глянул)
jvov
1 / 1 / 0
Регистрация: 28.09.2011
Сообщений: 113
26.04.2012, 21:48  [ТС]     Пузырьковая сортировка выкидывает ошибку... #11
Цитата Сообщение от antoha398 Посмотреть сообщение
ой.. я не туда глянул)
а сама шаблонная функция сортировки правильно написана?
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
26.04.2012, 21:52     Пузырьковая сортировка выкидывает ошибку... #12
а зачем вам пара скобок которая открывается перед int a?

Добавлено через 1 минуту
посмотрите здесь через шаблон сделано
Алгоритмы сортировок
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2012, 21:55     Пузырьковая сортировка выкидывает ошибку...
Еще ссылки по теме:

C++ Пузырьковая сортировка
C++ Пузырьковая сортировка
C++ Пузырьковая сортировка

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

Или воспользуйтесь поиском по форуму:
jvov
1 / 1 / 0
Регистрация: 28.09.2011
Сообщений: 113
26.04.2012, 21:55  [ТС]     Пузырьковая сортировка выкидывает ошибку... #13
Цитата Сообщение от antoha398 Посмотреть сообщение
а зачем вам пара скобок которая открывается перед int a?

Добавлено через 1 минуту
посмотрите здесь через шаблон сделано
Алгоритмы сортировок
Блин, спасибо огромное!!!, везде излазил... а как раз то, там и затаилась лишняя скобочка
Все заработало. Ещё раз спасибо!
Yandex
Объявления
26.04.2012, 21:55     Пузырьковая сортировка выкидывает ошибку...
Ответ Создать тему
Опции темы

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