В задании сказано, что N>99. То есть это факт. Следовательно, и предыдущее решение работает. Вдобавок, для N<=99 ответ тоже будет верный - 0.
А в решении от @Rafa3L я не понял, зачем нужно делать copy(sd,nh,gh) при gh всегда равно 1, когда можно сделать sd[nh]. Также не ясно, как оно согласуется с решением задачи. Если рассмотреть число 12345, то 5 - это единицы, 4 - десятки, 3 - сотни, 2 - уже тысячи. Следовательно, на вопрос "Сколько сотен в 12345" будет ответ 3. Хотя конечно, задачу можно трактовать двояко. Ну и в-третьих, не понимаю смысла во всем этом цикле(после него все равно kl=im)
Если уж делать через строки, то можно во много раз проще.
Код:
delete(sd,length(sd)-1,2);
edit2.text:=sd;
или
Код:
edit2.text:=sd[length(sd)-2];
соответственно для разных трактовок задач. Но все же ИМХО правильнее через div (и мб mod), т.к. в задании не написано, что "с клавиатуры вводится число n". Оно может прийти из другого места, например из файла или как результат предыдущих операций.