Как можно улучшить код?
- отформатировать по какому-нибудь стандарту, чтобы хотя бы строчки не гуляли влево-вправо.
- пользоваться тернарным оператором вместо if когда это имеет смысл. На мой взгляд,
d = n < 0 ? -n : n
выглядит куда лучше семистрочного if/else.
- не дублировать код когда этого легко избежать:
if(n<0) {
cout<<"-";
}
Ну и добавлю, что у этого кода есть проблема с обработкой входного значения -2147483648.