Opened 5 years ago

Closed 5 years ago

#245 closed ожидается проверка (задача сдана)

WW #3

Reported by: chaykova.anastasiya Owned by: Egor Suvorov
Component: WW_intrusive_list Version: 1.0
Keywords: Cc:

Description


Change History (9)

comment:1 Changed 5 years ago by Egor Suvorov

Owner: changed from Egor Suvorov to chaykova.anastasiya
Type: ожидается проверкаожидаются исправления

Корректность 7.5/8:

  1. print выводит лишний пробел в конце строки.

Стиль 3/4:

  1. Ставьте пробелы между for/while/if и следующей скобочкой: while (1), не while(1). Аналогично с else.
  2. Ставьте пробелы перед открывающей фигурной скобкой: while (1) {, а не while (1).
  3. Лучше не intrusive_list_t, а просто intrusive_list. Имена типов, заканчивающиеся на _t, зарезервированы стандартом POSIX.
  4. Незачем выделять фиктивный элемент при помощи malloc: просто встройте intrusive_node как поле в intrusive_list.
  5. Промежуточная переменная head не нужна, лучше писать list->head.
  6. printf("%c%d %d%c ",'(', p->x, p->y, ')'); — здесь скобки нужно написать прямо в строке формата.
  7. char line[240] — назовите это command и сделайте буфер поменьше, как раз чтобы команды влезали и некорректные команды очевидно отличались от корректных.

comment:2 Changed 5 years ago by chaykova.anastasiya

Owner: changed from chaykova.anastasiya to Egor Suvorov
Type: ожидаются исправленияожидается проверка

comment:3 Changed 5 years ago by Egor Suvorov

Owner: changed from Egor Suvorov to chaykova.anastasiya

print починился, но появилась новая проблема:

  1. Если скормить на вход очень длинную команду, то переполнится буфер command, будет UB.
  2. Сейчас ваш код не отличит print от printtttttt (и в обоих случаях попробует напечатать все точки). Пяти символов недостаточно, чтобы отличить эти команды, надо хотя бы шесть. Тогда окей.

Стиль 3.5/4:

  1. print("%s", "Unknown command") — упростить (см. прошлые замечания по стилю).
  2. В if в show_all_points лучше выводить координаты точки независимо от if. А внутри if выводить или не выводить только пробел.
  3. add_point: лучше напишите создание переменной и присваивание в одну строчку: point *new = malloc(...);
  4. В выражении &(a->b) скобочки не нужны, просто &a->b.


comment:4 Changed 5 years ago by chaykova.anastasiya

Owner: changed from chaykova.anastasiya to Egor Suvorov

comment:5 Changed 5 years ago by Egor Suvorov

Owner: changed from Egor Suvorov to chaykova.anastasiya

Корректность пока 7.5/8:

  1. Если скормить на вход очень длинную команду, то переполнится буфер str, будет UB. Подсказка: вы не учли нулевой символ в размер буфера.

По стилю пока 3.5/4:

  1. Лучше не if (x != NULL), а просто if (x). Аналогично в циклах.

comment:6 Changed 5 years ago by Egor Suvorov

Type: ожидается проверкаожидаются исправления

comment:7 Changed 5 years ago by chaykova.anastasiya

Owner: changed from chaykova.anastasiya to Egor Suvorov

comment:8 Changed 5 years ago by chaykova.anastasiya

Type: ожидаются исправленияожидается проверка

comment:9 Changed 5 years ago by Egor Suvorov

Resolution: задача сдана
Status: assignedclosed

Ура! 12/12

Note: See TracTickets for help on using tickets.