如何显示表的总和

时间:2015-12-13 02:32:10

标签: c

我是C编程的初学者,我想通过要求用户输入一个整数N来改进这个程序,然后程序得到它的数字之和,如果这个总和的结果大于一个数字我们是重塑这些数字的总和。

示例:N = 123456 -----> S = 1 + 2 + 3 + 4 + 5 + 6 ---------> S = 21 ------------> S = 3

    #include <stdio.h>
main()
{
int T[50];
int N;
int I;
long S;
printf("D (max.50) : ");
scanf("%d", &N );
for (I=0; I<N; I++)
{
printf("E %d : ", I);
scanf("%d", &T);
}
printf("T :\n");
for (I=0; I<N; I++)
printf("%d ", T);
printf("\n");
for (S=0, I=0; I<N; I++)
S += T;
printf("Sum : %ld\n", S);
return 0;
}

提前致谢;)

3 个答案:

答案 0 :(得分:1)

不需要为数字使用数组。你应该养成将代码分解为易于理解的小功能的习惯。

#include <stdio.h>

// assume n >= 0
int sum_of_digits (int n)
{
    int sum = 0;
    while (n > 0) {
        sum += n % 10;
        n /= 10;
    }
    return sum;
}

// assume n >= 0
int digital_root_sum (int n)
{
    // As long as n has more than one digit, we replace it
    // with the sum of its digits.
    while (n >= 10) {
        n = sum_of_digits (n);
    }
    return n;
}

int main()
{
    int n;

    printf ("n   : ");
    scanf ("%d", &n);
    printf ("sum : %d\n", digital_root_sum (n));
    return 0;
}

答案 1 :(得分:0)

OrderedDict

答案 2 :(得分:0)

感谢大家的热烈回应,非常感谢你。我会尝试你的答案,我告诉你。 我为我的英语道歉并再次感谢你