Я новичок в программировании в C, и я ищу решение для конкретной c проблемы. Я должен создать программу для суммирования цифр. То, что я сделал, не идеально, но код работает до тех пор, пока строка не станет слишком длинной, как 10000 цифр в stdin, и я застряну с этим. Я не могу поставить все эти числа, потому что я получаю переполнение. Думаю, мне следует создать какой-то буфер, но я не знаю, как это сделать с помощью stdin. Спасибо за любые идеи. (Извините за мой английский sh, он не идеален)
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
long a;
long value;
long c;
char s[10000];
printf("Input an integer\n");
scanf("%s", s);
value = a = 0;
while (s[a] != '\0') {
c = s[a] - '0';
value = value + c;
a++; }
if(value < 10){
printf("Sum of digits %ld\n", value);}
while(value >= 10){
long digit = 0;
long value2 = 0;
while (value > 0)
{
digit = value % 10;
value2 = value2 + digit;
value /= 10;}
printf("Sum of digits %ld \n",value2); }
return 0;
}