int cs = sum(c, ch - 0);
Похоже, что вы пытаетесь учесть значения ASCII, вычитая значение ASCII 0 из любого символа, который вводит пользователь. Однако вы использовали целочисленный литерал 0, когда вы хотите использовать символьный литерал '0'. Смотри ниже:
int cs = sum(c, ch - '0');
Кроме того, я бы порекомендовал переименовать ваш int в i или что-то, кроме c. Немного трудно различить, что типы c и ch разные.
Также рассмотрите возможность изменения
if((c >= '0' && c <= '9')
до
if((c >= 0 && c <= 9)
c - целое число, и вы должны сравнить его как таковое. Используя '', вы в основном выполняете приведение к переменной char, которая здесь не нужна.
Другая проблема заключается в том, что я не думаю, что вы сможете выполнить то, что пытаетесь сделать, используя переменную char для двузначного числа. Переменная типа char может содержать один символ, а двузначное число состоит из двух символов.