Остальные правы по поводу причины. Я думаю, вы можете просто установить next_char
(который в соответствии с соглашениями об именах должен быть nextChar
) равным фиктивному значению, которое не соответствует ни одной букве, используемой римскими цифрами, в случае, если нет следующего символа:
char nextChar;
if (i + 1 < n1.length) {
nextChar = n1[i + 1];
} else {
nextChar = '\0';
}
С этим изменением ваша программа печатает:
Roman Numeral:
CXIII
Number:
113
Vitor SRG также прав, что ваша программа не проходит валидацию, что не очень хорошо.