#7989: Пересортица

20:45 09.12.2011, IT happens


Я первокурсник мехмата МГУ. В числе прочего у нас, разумеется, есть предмет «работа на ЭВМ» — фактически, программирование на C.


Решаем задачу сортировки. Я, как один из наиболее врубающихся, всё сдал и бегаю по аудитории, подсказывая другим, где они ошиблись. Подзывает один из одногруппников: программа запускается и сразу же улетает в бесконечный цикл, спасает только Ctrl+C.


Сразу оговорюсь: никакой толковой отладки мы не изучали (хотя надо бы, наверное). Ладно, смотрю в код, предлагаю вбить отладочную печать. Не выводится ничего — даже то, что поставлено в самое начало процедуры сортировки. Всё, что до этого, вне подозрения: там зациклиться вообще негде. Чешу репу.


Тут меня подзывает другой одногруппник — иду разбираться. Вскоре снова оказываюсь рядом с тем «зациклившимся», и он спрашивает:


— А как можно программу запустить — там, точка, палочка, что-то подобное?…


Понимаю, что речь идёт о запуске с указанием текущей папки — работали мы в Федоре из-под терминала и запускали соответствующе. Говорю:


— Точка, слэш, название. Попробуй — может, сработает…


Через пару секунд:


— Есть!


И только тут до меня дошло. Программный файл назывался sort, и при попытке его запустить, просто набрав имя, без пути, система вместо этого выполняла стандартную команду sort и, разумеется, ждала появления входных данных. Когда же одногруппник набрал ./sort, всё запустилось как надо.


Вот так-то, дорогие коллеги! Иногда ошибка не в коде — просто вы с системой друг друга не поняли.



Загрузка...