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

qsort, рабочий день убит... - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сканеры исходные тексты http://www.cyberforum.ru/cpp/thread12310.html
Здравствуйте! Купил книгу по программированию, там приведены примеры двух сканеров, первый по UDP протоколу запрашивает snmp агент и получает ответ: 30 2F 02 01 00 04 06 70 75 62 6C 69 63 A2 22 02 0)..... publicC". 04 7E 16 A2 5E 02 01 00 02 01 00 30 0E 30 0C 06 /~.C^......0.0.. 08 2B 06 01 02 01 01 05 00 04 06 68 70 31 37 30 .+........hpl70 30 ...
C++ Подскажите где ошибка? #include <iostream> using namespace std; const int Max_size=1000; class stack{ private: int s_size; int mass; public: http://www.cyberforum.ru/cpp/thread12144.html
Программирование микроконтроллера ADuC812 C++
Пожалуйста,помогите кто чем может..Чем заливать программу я знаю,мне нужна сама прога на С++ для того чтобы ADuC отображал информацию на индикаторе,когда на него подают напряжение...
C++ Защита от копирования
Здрасьте!Подскажите пожалуйста,как сделать,чтобы файл нельзя было копировать, но можно было перемещать? Код под Windows, обязательно на с/с++.
C++ Запуск исполняемого файла (.exe) http://www.cyberforum.ru/cpp/thread11919.html
Hi every body! Помогите в разработке программы. Я не знаю какие нужно использовать функции в C++ :scratch: для того, чтобы приложение можно было запускать не более 1-го раза, т. е. если я запускаю приложение и не закрываю его, опять пытаюсь его запустить оно не должно запускаться, так как оно уже ранее запущено.
C++ Циклы for. Проблема объявления/инициализации Эх, так и придется создавать новую тему. А то, блин, интересно ж... Итак, я тут в недавней теме утверждал, что блок инициализации цикла for является внешним по отношению к его внутреннему блоку (блоку команд, то бишь). CheshireСat's евангелие не соглашается со мной Сообщение от Vourhey Просто переменная объявленная в инициализации цикла считается внешней по отношению к самому блоку цикла.... подробнее

Показать сообщение отдельно
Vourhey
Почетный модератор
6470 / 2245 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
13.09.2008, 00:18     qsort, рабочий день убит...
Всем привет,
Я, наверное, представляться не буду

Вообщем, один мой рабочий день на этой неделе был убит такой вещью: делал я задачку на сортировку строк в матрице. Решил делать через qsort. Но, че-то мои мозги повисли на мысли что сортировка не пашет на количестве элементов большем 9... брррр. Писал в VS 2008 (в 2005 тоже пробовал). Забил я на матрицу и сократил до такого:
Код
#include <stdio.h>
#include <stdlib.h>

int compare( const void *arg1, const void *arg2 )
{
    if(*(int*)arg1 > *(int*)arg2)
    {
        return 1;
    }
    else {;return 0;}
}

void main()
{
    int a[9];
    a[0] = 27;
    a[1] = 11;
    a[2] = 25;
    a[3] = 34;
    a[4] = 45;
    a[5] = 0;
    a[6] = 44;
    a[7] = 14;
    a[8] = 26;
    printf("%d %d %d %d %d %d %d %d %d\n", a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]);
    qsort(&a, 9, sizeof(int), compare);
    printf("%d %d %d %d %d %d %d %d %d\n", a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]);
    getchar();
}
Почему этот код выводит такую интересную вещь:
27 11 25 34 45 0 44 14 26
26 11 25 14 27 0 34 44 45
т. е. сортировка не работает. Если я этот же код компильну в gcc, то сортировка пройдет на ура.
Замените в qsort 9 на 8 и все ок...

Хм... Это бага в моих генах, или в библиотечной реализации qsort у VS?

Добавлено через 5 минут 10 секунд
Блин, только что в 6.0 версии попробовал:
27 11 25 34 45 0 44 14 26
45 11 25 34 27 0 44 14 26
У меня есть шанс выздороветь?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru