#248 closed ожидается проверка (задача сдана)
WW #4
Reported by: | Maria Chizhova | Owned by: | Egor Suvorov |
---|---|---|---|
Component: | WW_mergesort | Version: | 3.0 |
Keywords: | Cc: |
Description
Change History (8)
comment:1 Changed 5 years ago by
Owner: | changed from Egor Suvorov to Maria Chizhova |
---|---|
Type: | ожидается проверка → ожидаются исправления |
comment:2 Changed 5 years ago by
Owner: | changed from Maria Chizhova to Egor Suvorov |
---|---|
Type: | ожидаются исправления → ожидается проверка |
Version: | 1.0 → 2.0 |
comment:3 Changed 5 years ago by
Owner: | changed from Egor Suvorov to Maria Chizhova |
---|---|
Type: | ожидается проверка → ожидаются исправления |
Впечатляет, особенно потому что это первая попытка.
Корректность 6/7:
- Выводятся лишние пробелы в конце строк.
- В задании просят реализовать копирование памяти руками.
memcpy
— это хорошо (аmemmove
— ещё лучше), но конкретно тут напишите, пожалуйста, свою функцию вродеmy_memcpy
(кажется, вам даже не требуется, чтобы она работала с пересекающимися диапазонами памяти). - Арифметика указателей с
void*
— это расширение GCC (о чём он предупредит, если добавить опцию-pedantic
), лучше добавьте явное преобразование вchar*
перед арифметикой. - Для бонуса не хватает проверки возвращаемого
mergesort
значения.
Стиль 2/3:
- Перемешаны табы и пробелы.
- Придерживайтесь одного стиля и именовании функций и переменных. В Си обычно принят
snake_case
:a_len
вместоaLen
иint_compare
вместоintCompare
. - Добавьте в конец
main
в веткеelse
падение программы, например:assert(!"Unknown type to sort");
(стандартный трюк из Си). - Любой указатель автоматически преобразуется в
void*
, писать(void*)
необязательно. - В
merge
параметрarray
лучше назватьout
/result
. - А параметры
a
иb
—l
/r
, чтобы было соединение сleft
/right
(которые лучше назватьl_pos
/r_pos
). Илиleft
+left_pos
. - Вместо
aSize > left
пишитеleft < aSize
. Аналогично сbSize <= right
.
comment:4 Changed 5 years ago by
Owner: | changed from Maria Chizhova to Egor Suvorov |
---|---|
Type: | ожидаются исправления → ожидается проверка |
Version: | 2.0 → 3.0 |
comment:5 Changed 5 years ago by
Owner: | changed from Egor Suvorov to Maria Chizhova |
---|---|
Type: | ожидается проверка → ожидаются исправления |
Корректность 6.5/7:
my_memcpy
не используется за пределамиmergesort.c
=> не должна быть объявлена вmergesort.h
.
Стиль 2.5/3:
- Пока всё ещё перемешаны табы и пробелы (см.
main.c
). - В
merge
объявите переменные как можно позже, послеif
. elements
-->elements_total
, чтобы не перепутать случайно сl_size
/r_size
.
Бонус на 1/1 есть.
comment:6 Changed 5 years ago by
Owner: | changed from Maria Chizhova to Egor Suvorov |
---|---|
Type: | ожидаются исправления → ожидается проверка |
comment:7 Changed 5 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
Есть! 11/10, поздравляю!
По стилю:
- Не очень имена в
my_memcpy
: я бы там скорее сделалcur_dest
/cur_src
иorig_dest
/orig_src
. Или просто цикл сi
иdest[i] = src[i]
.
comment:8 Changed 5 years ago by
Забыл замечание (баллы уже не меняются): пожалуйста, не используйте арифметику с void*
. Это расширение GCC. Кастуйте к char*
(можно проверить, добавив опцию -pedantic
).
Note: See
TracTickets for help on using
tickets.
Ура, 1/10 баллов за корректность есть :)
По стилю на будущее:
strcmp
из стандартной библиотеки вместо ручногоmy_strcmp
.