История изменений
Исправление Deleted, (текущая версия) :
По второму фрагменту (первый не смотрел):
/*Функция печати результата*/
int ret(int r) {
printf("%d", r);
return r;
}
Если выводишь ошибку, то она должна быть человеко-читаемой. Нет смысла выводить результат, который ты и так возвращаешь.
/*Проверим ввод аргументов*/
if (argc != 3) {
printf("Restart it with two arguments!\n");
return ret(0);
}
Если неправильные поданные аргументы являются ошибкой, то почему возвращается нуль? Какой в этом смысл?
mikhail@fall /tmp $ ./a.out
Restart it with two arguments!
0%
С какими аргументами я должен перезапустить? Если в ошибке выводится совет что делать, то его нужно делать понятным. Иначе в нем смысла нет абсолютно никакого — зачем он сдался, если все равно в сырцы смотреть?
/*Проверим знаки*/
if (argv[1][0] == '-' && argv[2][0] != '-')
return ret(2);
if (argv[2][0] == '-' && argv[1][0] != '-')
return ret(1);
Что значит ret(2)
? А ret(1)
?
/*Функция конвертации аргумента в целое*/
int cycles(char *ar1, int i)
{
int a = 0;
for (i = i; ar1[i]; i++)
a = a * 10 + (ar1[i] - '0');
return a;
}
i = i
? Это зачем вообще?
Почему функция называется cycles
, если она конвертирует аргумент в целое?
Исходная версия Deleted, :
По второму фрагменту (первый не смотрел):
/*Функция печати результата*/
int ret(int r) {
printf("%d", r);
return r;
}
Если выводишь ошибку, то она должна быть человеко-читаемой. Нет смысла выводить результат, который ты и так возвращаешь.
/*Проверим ввод аргументов*/
if (argc != 3) {
printf("Restart it with two arguments!\n");
return ret(0);
}
Если неправильные поданные аргументы являются ошибкой, то почему возвращается нуль? Какой в этом смысл?
mikhail@fall /tmp $ ./a.out
Restart it with two arguments!
0%
С какими аргументами я должен перезапустить? Если в ошибке выводится совет что делать, то его нужно делать понятным. Иначе в нем смысла нет абсолютно никакого — зачем он сдался, если все равно в сырцы смотреть?
/*Проверим знаки*/
if (argv[1][0] == '-' && argv[2][0] != '-')
return ret(2);
if (argv[2][0] == '-' && argv[1][0] != '-')
return ret(1);
Что значит ret(2)
? А не ret(1)
?
/*Функция конвертации аргумента в целое*/
int cycles(char *ar1, int i)
{
int a = 0;
for (i = i; ar1[i]; i++)
a = a * 10 + (ar1[i] - '0');
return a;
}
i = i
? Это зачем вообще?
Почему функция называется cycles
, если она конвертирует аргумент в целое?