• Как пофиксить warning "Expression result unused" в C++ компилятора LLVM?

    @TheCalligrapher
    С чего вы взяли, что cin; имеет хоть какое-то отношение к "просто нужен ответ от пользователя, чтобы он нажал любую клавишу"???
  • Как создать двумерный массив указателей на функции Си?

    @TheCalligrapher
    "Почему то нету варианты при вставки кода, С!" - что это значит?
  • Как рассчитать параметры поворота одного вектора до другого?

    @TheCalligrapher
    Что означают слова "мы можем вращать только вокруг осей"? Вам нужно получить три отдельных [матрицы] поворота для поворота вокруг каждой из осей в отдельности?
  • Что лучше использовать #include или LoadLibrary?

    @TheCalligrapher
    Ternick, Вы не получите доступа к функции, сделав #include. #include лишь даст вам объявление функции, но не прилинкует библиотеку к вашей программе и не загрузит ее. Собственно линковку библиотеки делает линкер, а загрузку - загрузчик. Вот эти два этапа и можно заменить на ручную загрузку через LoadLibrary. #include здесь совершенно сбоку припеку.
  • Что лучше использовать #include или LoadLibrary?

    @TheCalligrapher
    Ничего не понял. Вопрос бессмыслен. #include никак не заменяет LoadLibrary. Вы о чем вообще? Вопрос звучит как "что лучше, яблоко или прямой угол?"
  • Почему показывается 'меню' 2 раза?

    @TheCalligrapher
    jcmvbkbc, Да, это так. Но:

    Во-первых, в рамках свободы, предоставляемой стандартом языка С, реализации могут делать вообще что угодно (я веду речь в т.ч. о расширениях языка). Они могу хоть Фортран напрямую компилировать. Тем не менее в задании по языку С нет никакой необходимости привлекать какую-либо "implementation-defined manner", если само задание не подразумевает чего-либо подобного.

    Во-вторых, на текущий момент объявления и определения функций с () являются deprecated. Это может поменяться в следующем стандарте, но пока что: лучше (void), а не ().
  • Почему показывается 'меню' 2 раза?

    @TheCalligrapher
    В С - int main(void), а не void main().
  • Если кинуть тело вертикально вверх, какое будет ускорение тела в самой верхней точке?

    @TheCalligrapher
    Рональд Макдональд, Вы пишете какую-то чушь. На наше тело в любой момент времени действует постоянная сила тяжести, определяемая Законом Всемирного Тяготения. Больше никаких сил на наше тело не действует (пренебрегая сопротивлением среды). Тело, на которое действует постоянная сила F, всегда движется равноускоренно, с ускорением, определяемым F/m. Верхняя точка траектории не является исключением из этого закона. Во всех точках траектории ускорение равно g, без вариантов. То, что какой-то момент скорость тела равна 0 ни является никакой исключительной ситуацией, точно также, как и то, что в какой-то момент скорость тела равна 5.

    Если бы внутри этого тела располагались некие обитатели, то ничего особенного в верхней точке траектории они бы не испытывали. Они бы испытывали совершенно одинаковую невесомость (относительно "стенок" тела) на протяжении всей траектории полета. Распознать верхнюю точку траектории с их точки зрения - невозможно.
  • Как правильно передать в RegSetValueEx в lpData NULL?

    @TheCalligrapher
    Евгений Шатунов, Молодой человек, читайте внимательнее: все доказательства я уже привел, со всеми необходимыми ключевыми словами. Если вам что-то в них не понятно - задавайте конкретные вопросы по вышесказанному. А общий курс "С++ для начинающих" я здесь зачитывать не буду.
  • Как правильно передать в RegSetValueEx в lpData NULL?

    @TheCalligrapher
    Евгений Шатунов, Во-первых, я как-то привык к тому, что мои слова - это и есть готовая ссылка на стандарт. И понимание того, что я сказал - это есть критерий того, что вы "разобрались в вопросе".

    Во-вторых, второй абзац моего комментария выше - это очевидный контрпример, т.е. мгновенное и исчерпывающее доказательство того, что ваше утверждение о "минимальной допустимости" не верно. Поэтому вашу самодеятельную приписку про "минимальную допустимость" я отменяю, как некорректную. Поиск ссылок на стандарт я оставлю вам в качестве упражнения.
  • Почему неправильно работает такая реализация алгоритма быстрой сортировки?

    @TheCalligrapher
    wataru, Это не относится к оптимизации (скорости сортировки) вообще. Это лишь вопрос грамотной реализации. Это на самом деле совсем не глубоко спрятанное соображение, которое позволит алгоритму завершиться на любых входных данных вместо того, чтобы упасть по переполнению стека рекурсии при неудачном выборе медианы.

    Грамотно реализованный quicksort не выходит за пределы log2(N) стека, независимо от того, насколько хорошо сбалансировано разделение элементов массива (partitioning). То есть, например, можно гарантировать, что на 32-битной платформе всегда хватит стека глубины 32. Любая реальная практическая (не учебная студенческая) реализация quicksort всегда принимает во внимание это соображение.
  • Как правильно передать в RegSetValueEx в lpData NULL?

    @TheCalligrapher
    "...минимально допустимый размер памяти" - зачем здесь упомянут некий "минимально допустимый" размер? Откуда вдруг взялась "минимальная допустимость" и почему она здесь важна?

    Вообще-то sizeof для класс-типа будет включать в себя и замыкающие padding bytes, то противоречит "минимальной допустимости".
  • Почему неправильно работает такая реализация алгоритма быстрой сортировки?

    @TheCalligrapher
    wataru, Ни в коем случае!!!

    При реализации быстрой сортировки на практике обязательно один из вызовов вручную заменяется на "циклический" вызов и только второй делается рекурсивным. Ни о каких "2 рекурсивных вызова" не может быть и речи.

    • Если вы используете явную языковую рекурсию, то рекурсивный вызов делается первым, обязательно для более короткой половины массива, а затем выполняется "итеративный вызов" для обработки более длинной половины массива.

    • Если вы используете "ручную рекурсию" (то есть явный стек), то наоборот, в стек заносится более длинная половина массива (для обработки "потом"), а "сейчас" выполняется циклический вызов алгоритма для обработки более короткой половины.


    Цель этих манипуляций - всегда сначала обрабатывать более короткую половину разделенного массива, а затем - более длинную.

    Это критически важное ключевое соображение, которое гарантирует вам, что глубина рекурсии во время сортировки всего массива не превысит log2(N) даже в самом худшем случае. Если вы проигнорируете эти соображения, то глубина рекурсии в худшем случае может достичь N, что совершенно не приемлемо на практике.
  • Сортировка массива методом прямого выбора не работает. Что делать?

    @TheCalligrapher
    Что за чушь? Что такое "не работает"? В чем заключается "не работает"? При этом приведенная реализация сортировки прекрасно работает.
  • Как задать синус в языке С?

    @TheCalligrapher
    StyleBender, Не понимаю вопроса. "Отменял" какие "дефайны"? Никто не запрещает вам сделать свой дефайн. Готового стандартного дефайна для M_PI не существует.
  • Как задать синус в языке С?

    @TheCalligrapher
    В стандартной библиотеке нет константы M_PI. Ваш ответ применим только к самодеятельности конкретного компилятора.
  • Как показать адрес в памяти?

    @TheCalligrapher
    А зачем "это" делать не прибегая к функции printf? Что за странный вопрос? А если сделать через sprintf - это будет "прибегая к функции printf" или нет? И что вообще имеется в виду под "это"?
  • Как сделать каст потомка к родителю?

    @TheCalligrapher
    Почему в вопросе идет речь про некий "каст"? При чем здесь вообще "каст"? Преобразование от потомка к предку в С++ прекрасно делается неявно, как видно из вашего же кода, без использования кастов. Зачем каст?
  • Как организована работа rand()?

    @TheCalligrapher
    Владимир Коротенко, Не верю. Для подавляющего большинства классических комбинаторных программистских задач нужен именно генератор ПСЕВДОслучайных чисел с детерминистским и повторяемым поведением. rand() подходит на эту роль прекрасно. "Более случайные" реализации нужны лишь специальных приложений со своими специфическими требованиями.