Реакторчане, нужна помощь.
Прохожу курс cs50. После каждой лекции они дают пару задачек, которые надо решить. Я застрял на задачке Tideman, на Си.
Суть задачи - сформировать алгоритм выборов Тайдмана, когда каждый голосующий выбирает не конкретного кандидата, а располагает всех кандидатов в порядке предпочтения. Из этих предпочтений строится график (двумерный массив) со всеми кандидатами и указателями от одного кандидата к другому, от победителя к проигравшему. Тот, на кого никто не указывает - побеждает в голосовании.
В самой задачке надо прописать 6 функций, можно добавлять дополнительные функции, но менять main нельзя. Я написал все, но проверку через сайт прошли только 5. Последняя функция проходит в моих собственных тестах, а на сайте не проходит.
У них, кстати, есть своё собственное IDE, довольно удобное, надо только через аккаунт GitHub'а зайти.
Саму функцию скину в комменты, чтобы пост не удлинять.
Ну и как же без купона.
Ах да, я писал в личку ребятам с курса, писал в дискорд - никто мне толком не ответил. В интернете ничего по задаче не нашел.
Для этого она должна использовать глобальную переменную candidate_count и глобальный двумерный булевый массив locked, который представляет из себя сам график.
Например: locked[2][4] = true; означает, что кандидата "2" предпочитают кандидату "4", а locked[0][2] = true; означает, что нулевого кандидата предпочитают перед вторым.
Суть функции - найти источник графика, то есть кандидата, на которого никто не указывает. Я написал функцию следующим образом:
Оговорюсь, что саму задачу по ссылке не дочитал, т.к. многабукаф
Твой вариант чуть проще попробую его, отпишусь.
Может еще какие варианты будут?
Условие второго теста я не понял, т.к. не вник пока, как там у них происходит tie.
Если написавший тестер в США, пиши хоть сейчас, должен быть день по всей стране =)
Complete the print_winner function.
The function should print out the name of the candidate who is the source of the graph. You may assume there will not be more than one source
Ты имя должен принтить, а не номер.
Проблему решил.
Ты был прав, там не хватало \n.
Тупая IDE после добавления в printf \n не сохраняла изменения (похоже не видела их) и отсылала в чекер версию без \n. И чекер опять возвращал ошибку. Пришлось добавить комментарий вместе с добавлением \n.
Пиздец как это тупо, я из-за этого говна 2 дня голову ломал. Охуеть.
Ты с самого начала был прав. Спасибо тебе!
И знаешь, он не настолько уж лучше. Самый главный минус его - 2840 баксов.
Спасибо, я как домохозяйка предпочту пройти сначала простой и бесплатный курс, чтобы хотя бы понять, что такое программирование и что мне в нём делать. А не башлять сразу 2840 баксов. Заебись советчик.