Подскажите, пожалуйста, почему этот код иногда выводит 1 вместо нужного числа

Подскажите, пожалуйста, почему этот код иногда выводит 1 вместо нужного числа. Спасибо

    #include <stdlib.h>
    #include <stdio.h>
        int main(){
            int isicc;
            scanf ("%d", &isicc);
               
            isicc = abs(isicc);
            printf ("%d\n", isicc?isicc%9?isicc%9:9:0 );
               
        }

Ответы (1 шт):

Автор решения: Harry
int main()
{
    int s = 0, c;
    while((c = fgetc(stdin)) != EOF && isdigit(c))
        s += c - '0';
    printf ("%d\n", s%9 ? s%9 : 9 );
}
→ Ссылка