解析: 很简单的一个加数字问题。
#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; }