Обьясните, что здесь происходит ++ndigi[c-'0']?
Выражение (c-'0') возвращает индекс в массиве nidigi[10].
В переменной 
char c;
лежит ASCII код введенного символа (цифры), если из этого кода вычесть ASCII код символа '0', то получите цифру от 0 до 9, что и требуется. Чтоб удостоверится посмотрите таблицу ASCII кодов.
В массиве nidigi в итоге количество вхождений десятичных цифр во входных данных - гистограмма.
Можете поподробнее о выражении с-'0'? Я все еще не понимаю. Желательно привести пример. ( и у меня not c)