Opened 5 years ago

Closed 5 years ago

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

WW #5

Reported by: lebedev.egor Owned by: Vasily Alferov
Component: WW_c_io Version: 2.0
Keywords: Cc:

Description


Change History (3)

comment:1 Changed 5 years ago by Vasily Alferov

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

Очень круто. 10 баллов пока.

Корректность: 7/7
+2 балла за дополнительные коды.

Стиль: 1/3 =(

Стиль

Глобальных замечаний два, за первое -0.5, за второе -1.5.

  1. str_compare: убери, используй strcmp, не изобретай велосипед. К тому же там внутри есть очень подозрительная конструкция:
while (...) {
    return 0;
}
  1. В твоём возрасте настолько нагло копипастить уже неприлично. Особенно когда сдаёшь домашку, которая сразу проходит автотесты и претендует на двенадцать баллов из десяти.

Места, где нужно избавляться от копипаста:

  • Чтение числа из бинарного файла: одинаковый код для x и y. Вынеси, пожалуйста, в отдельную функцию, возвращающую прочитанное число.
  • Запись числа в бинарный файл: одинаковый код для x и y. Вынеси, пожалуйста, в отдельную функцию.
  • Более того, внутри этой записи у тебя три раза повторяется код: два раза он совсем одинаковый, на третий чуть-чуть отличается, да и то мог бы совсем не отличаться. Сделай из этого цикл, пожалуйста.

К тому же

Как избавляться от unused argc:

  1. Кондовый способ, но работает всегда.
int main(int argc, char* argv[]) {
    (void)argc;
    ...
}

Если что, это реальный использующийся способ избавления от этого ворнинга. Иногда делают даже так:

#define UNUSED(x) (void)(x)

int main(int argc, char* argv[]) {
    UNUSED(argc);
    ...
}
  1. Наверное, самый простой способ:
int main(int, char* argv[]) {
    ...
}
  1. А ещё можно проверить, что твоей программе передали правильное количество аргументов, и завершаться с каким-нибудь содержательным сообщением вместо SEGFAULT в таком случае!
int main(int argc, char * argv[]) {
    if (argc < 4) {
        fprintf(stderr, "Need more arguments\n");
        return 2;
    }

    ...
}

comment:2 Changed 5 years ago by lebedev.egor

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

comment:3 Changed 5 years ago by Vasily Alferov

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

Зачтено.

Note: See TracTickets for help on using tickets.