Opened 5 years ago
Closed 5 years ago
#307 closed ожидается проверка (задача сдана)
WW #4
Reported by: | podoprigora.ivan | Owned by: | Артур Гулецкий (huletski) |
---|---|---|---|
Component: | WW_mergesort | Version: | 3.0 |
Keywords: | Cc: |
Description
4-я лабораторная пустая. Не успел
Change History (6)
comment:1 Changed 5 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
comment:2 Changed 5 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|---|
Version: | 1.0 → 2.0 |
comment:3 Changed 5 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
Тесты решение проходит, +10.
Замечания:
mergesort.h
2: подключение stdio.h
избыточное (функции/определения типов C IO не используются в сигнатурах);
6: my_memcpy
можно не экспортировать, т.к. ee (по смыслу) не предполагается использовать отдельно от mergesort
;
7, 8: строки по 100+ символов. Обычно ограничение на макс. длину строки - [80..100] символов.
main.c
2,3: стандартные закологовчные файлы должны быть подключены, используя угловые скобки;
7,17: нарушен единый стиль отступов -> -1;
15: comparator
надо сделать локальной переменной;
19: массивы переменной длины выделяйте в динамической памяти (в общем случае может тратиться неоправданно много памяти на стеке) -> -1;
mergesort.c
25: код в блоках if-elseif очень похож, что наводит на мысль о возможности его упрощения. Hint: фактически все, что делает if - выбирает источник для копирования в i
.
--
Итог: 8/10, можно доделывать еще.
comment:4 Changed 5 years ago by
UPD: не проверяете, что malloc
(mergesort.c:23) вернул не-NULL
. В этом случае решение может падать по assert'у.
comment:5 Changed 5 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|---|
Version: | 2.0 → 3.0 |
comment:6 Changed 5 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
Тесты не сломались -> +10.
Замечания
mergesort.h
- При переносе аргументов на другую строку, обычно добавляют отступы, например:
void foo(void *a, size_t a_sz, void *b, size_t b_sz);
- объявляется лишняя функция
merge
, ее реализации нет вmergesort.c
.
main.c
comparator
- локальной переменной для функции -> стало получше. Но теперь неясно, зачем хранить указатель на функцию в переменной при текущей реализации, если можно передавать его непосредственно при вызове (пример для int:merge_sort(..., comparator_int)
, 25ая строка).
mergesort.c
UPD: не проверяете, что malloc (mergesort.c:23) вернул не-NULL. В этом случае решение может падать по assert'у.
проверку на успешность выделения памяти так и не добавили. Не забудьте это сделать в следующий раз.
25: код в блоках if-elseif очень похож, что наводит на мысль о возможности его упрощения. Hint: фактически все, что делает if - выбирает источник для копирования в i.
код решили не переделывать - ok.
--
Итог: 10
Решение не собирается: