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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
jvov
1 / 1 / 0
Регистрация: 28.09.2011
Сообщений: 113
#1

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

26.04.2012, 18:20. Просмотров 711. Ответов 12
Метки нет (Все метки)

Выкидывает вот такую ошибку - 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");
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2012, 18:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Пузырьковая сортировка выкидывает ошибку... (C++):

Пузырьковая сортировка - C++
Здравствуйте .Объясните , пожалуйста , подробно , как работает пузырьковая сортировка . Получается сравниваются два соседних элемента и...

Пузырьковая сортировка - C++
#include &lt;iostream&gt; #include &lt;fstream&gt; using namespace std; int main() { const int n = 5; int a; ifstream...

Пузырьковая Сортировка - C++
Описать структуру с именем Train, содержащую следующие поля: Point (название пункта назначения), Number (номер поезда), Time (время...

пузырьковая сортировка - C++
Задача не сложная, но у меня нет времени ее решать: дан одномерный массив, нужно сделать пузырьковую сортировку по нему

Пузырьковая сортировка - C++
В чес дело не могу понять? Переменной массива с индексом X присваивается какое то левое значение. #include &lt;iostream&gt; #include...

Пузырьковая сортировка - C++
Написал программу сортировки методом пузырька: #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;cstdlib&gt; int...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
panicwassano
592 / 560 / 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 НИКУДА не указывает и вы в это "НИКУДА" пытаетесь записать значение!
1
thick_int
Заблокирован
26.04.2012, 18:25 #3
Очевидно, что в 22 строке и в 24 строке имеет место попытка разименовывания ни на что не ссылающегося указателя.
1
bz_
6 / 6 / 1
Регистрация: 10.04.2012
Сообщений: 31
26.04.2012, 18:31 #4
Переменная t — временная, посему она и создается и удаляется в пределах цикла, в котором используется.
1
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, то выдает ошибку... Что не могу додуматься, что нужно изменить, что бы работало?
0
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
26.04.2012, 18:42 #6
Сделайте через объекты, а не указатели.
C++
1
2
Rectangle t;
t = arr[b-1];
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;
      }
    }
};
0
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
26.04.2012, 21:36 #8
после определения функции PSortRectangle уберите ;
1
jvov
1 / 1 / 0
Регистрация: 28.09.2011
Сообщений: 113
26.04.2012, 21:42  [ТС] #9
Цитата Сообщение от antoha398 Посмотреть сообщение
после определения функции PSortRectangle уберите ;
что-то не помогает? Или что вы имели ввиду?
0
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
26.04.2012, 21:46 #10
ой.. я не туда глянул)
0
jvov
1 / 1 / 0
Регистрация: 28.09.2011
Сообщений: 113
26.04.2012, 21:48  [ТС] #11
Цитата Сообщение от antoha398 Посмотреть сообщение
ой.. я не туда глянул)
а сама шаблонная функция сортировки правильно написана?
0
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
26.04.2012, 21:52 #12
а зачем вам пара скобок которая открывается перед int a?

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

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

Пузырьковая сортировка - C++
Здравствуйте! Необходимо осуществить пузырьковую сортировку в столбцах двумерного массива. Но только сортировка должна быть среди...

Пузырьковая сортировка - C++
Здравствуйте. Есть код, который сортирует методом пузырька по строчкам, что мне поменять, чтобы была сортировка по столбцам начиная с...

Пузырьковая сортировка - C++
Помогите плз. Работаю в Visual Studio 2010. Написал алгоритм пузырьковой сортировки, но когда запускаю вместо одной из цифр выводится самое...

Пузырьковая сортировка - C++
Посмотрите что не так дана таблица стран с кол-вом золотых, серебряных медалей нудно отсортировать страны в порядке убывания количества...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.04.2012, 21:55
Ответ Создать тему
Опции темы

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