解析:  很简单的一个加数字问题。

#include <stdio.h>
#include <string.h>
static int digit_sum(int n);
static int string_num(char *s);

int main()
{
    char ch[20];
    while(scanf("%s", ch) == 1 && strcmp(ch,"0") != 0)
        printf("%d\n", string_num(ch));
    return 0;
}
/*计算每位的和*/
static int digit_sum(int n)
{
    int sum = 0;      
    while(n > 0){
        sum += n % 10;
        n /= 10;
    }
    return sum;
}
/*计算名字的值*/
static int string_num(char *s)
{
    int num = 0, i;
    for(i = 0; s[i]; i++)
        num += s[i] - '0';
    while(num > 9)
        num = digit_sum(num);
    return num;
}