我是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;
}
提前致谢;)
答案 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)
感谢大家的热烈回应,非常感谢你。我会尝试你的答案,我告诉你。 我为我的英语道歉并再次感谢你