Opened 5 years ago
Closed 5 years ago
#280 closed ожидается проверка (задача сдана)
WW #3
Reported by: | kozubaev.nurmukhammad | Owned by: | Egor Suvorov |
---|---|---|---|
Component: | WW_intrusive_list | Version: | 2.0 |
Keywords: | Cc: |
Description
Change History (3)
comment:1 Changed 5 years ago by
Owner: | changed from Egor Suvorov to kozubaev.nurmukhammad |
---|---|
Type: | ожидается проверка → ожидаются исправления |
comment:2 Changed 5 years ago by
Owner: | changed from kozubaev.nurmukhammad to Egor Suvorov |
---|---|
Type: | ожидаются исправления → ожидается проверка |
Version: | 1.0 → 2.0 |
С scanf как понимаю была в 1 символе ошибка. Исправил. По стилю тоже прошелся.
comment:3 Changed 5 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
К сожалению, уже после дедлайна, так что только как дорешивание.
Корректность 7.5/8:
- Если скормить на вход очень длинную команду, то
Unknown command
выведется несколько раз.
Стиль 3/4:
printf("%s", "foo");
лучше заменить наprintf("foo");
, аналогично сprintf("%c", 'x');
- Перевод строки лучше выводить в
show_all_points
- Ставьте пробелы между
for
/while
/if
и следующей скобочкой:while (1)
, неwhile(1)
. Аналогично сelse
. - Ставьте пробелы перед открывающей фигурной скобкой:
while (1) {
, а неwhile (1)
. - В
remove_point
/remove_all_points
лучше вместо дополнительной переменнойnext
менять напрямуюcur
внутри цикла:for (intrusive_node *cur = l->head.next; cur;) { ... }
- Пробел слева от запятой в
int x , y;
не нужен - Скобочки в
&(a->b)
не нужны: просто&a->b
. - В
add_node
лучше сначала установить все значения уnode
, а потом у соседей. Или сначала разобраться с предыдущим соседом, а потом со следующим. Сейчас вы сначала ставите ссылку на следующего, потом ссылку с предыдущего, потом на предыдущего, потом со следующего.
Баллы поставил в табличку в примечания, чтобы не забыть.
Если хотите дорешать — смело переоткрывайте тикет.
Note: See
TracTickets for help on using
tickets.
Корректность 7/8:
print
выводит лишний пробел в конце строки.str
, будет UB.clist.c
должен подключать<stdlib.h>
самостоятельно, а не черезclist.h
— в последнем нужен только<stddef.h>
дляoffsetof
, а вот в первом нужен<stdlib.h>
дляmalloc
.Стиль 1.5/4:
clist.h
if (x != NULL)
, а простоif (x)
.x[a + b] = y[c];
for
/while
/if
и следующей скобочкой:while (1)
, неwhile(1)
. Аналогично сelse
.while (1) {
, а неwhile (1)
.remove_points
запускайте макросcontainer_of
не три раза, а только один. Сделайте переменную.show_all_points
.container_of
в скобочки.a
иb
.a
иb
— плохие названия для X/Y-координат точки.malloc
. Выделите её прямо в структуре, заведите поле.if (strcmp() == 0)
лучшеif (!strcmp())
while (strcmp() == 0)
лучшеwhile (true)
, обработать командуexit
так же, как остальные (а не "игнорированием) и сделатьbreak
.