Проблема, с которой я сталкиваюсь, заключается в том, что всякий раз, когда я ввожу только имя программы, оператор if с условием argc == 1 не работает, и в моей командной строке ничего не печатается, но каждый другой оператор if работает, когда я его тестирую. Я действительно не уверен, что сделал неправильно, спасибо за вашу помощь.
Также я знаю, что функция towers работает правильно, потому что для любого другого теста, который я делаю, он печатает правильный вывод, и только когда не записано никаких аргументов командной строки, кроме имени программы, он ничего не печатает.
int main(int argc, char **argv) {
int n;
int from;
int dest;
if ((atoi(argv[2]) > 3) || (atoi(argv[3]) > 3)) {
fprintf(stderr, "Cant have more than 3 towers.");
exit(1);
} else
if ((atoi(argv[1]) < 0)) {
fprintf(stderr, "Cant have negative number of disks.");
exit(1);
} else
if (argc == 1){
fprintf(stderr, "No command line argument was given./n");
n = 3;
from = 1;
dest = 2;
} else
if (argc == 2){
fprintf(stderr, "One command line argument was given\n");
n = atoi(argv[1]);
from = 1;
dest = 2;
} else
if (argc == 4) {
fprintf(stderr, "Three command line arguments were given\n");
n = atoi(argv[1]);
from = atoi(argv[2]);
dest = atoi(argv[3]);
}
towers(n, from, dest);
exit(0);
}