循环相加问题。给定一个非负整数,反复将各位上的数字相加,直到结果为一位数。

原题:给定一个非负整数,反复将各位上的数字相加,直到结果为一位数。
我这个程序对于各位相加结果小于10的就可以正确得出结果,但对于不小于10的就会出错
如图

img

img


img


int main()
{
    int n, a;
    scanf("%d", &n);
    while (n > 9)
    {
        a = 0;
        while (n > 0)
        {
            a += n % 10;
            n /= 10;
        }
        n = a;
    }
    printf("%d", n);
    return 0;
}

img