Я хочу написать программу, в которой я дам ввод как 109876543, и программа рассчитает сумму, добавив каждую цифру в данный вход (1 + 0 + 9 + 8 + 7 + 6 + 5 + 4 + 3). поэтому как отделить эту цифру и добавить их и какой тип данных выбрать для хранения этого входа?
[для C]
Переход на небуферизованный ввод-вывод:
int
чтобы удерживать сумму и инициализировать ее до 0
.select()
чтобы проверить, есть ли что-то для чтения из fileno(stdin)
.read()
чтобы читать ровно один char
.isdigit()
чтобы проверить, будет ли это число и если вычесть 48
и добавить результат к сумме.Вы можете сканировать один символ за раз, а затем превращать его в целое число по таблице ASCII. Scanf возвращает количество успешно введенных и назначенных элементов ввода. Код ASCII для 0 равен 48, для 1 - 49 и т.д.
char c;
int sum = 0;
while ((scanf("%c", &c) == 1) && (c != '\n')) {
sum += (c-48);
}
select
.