我想做的是获取之前从1开始的整数的累加和,例如: 如果我的输入是 4,那么该函数应该以这种方式工作; 1 + (1+2) + (1+2+3) + (1+2+3+4) = 20。 输出需要为 20。另外,我必须通过函数来完成此操作,而不是在 main() 中;函数,同时使用 int n 作为唯一变量。
我尝试的是制作一个从1到整数N相加的函数,并使用“for”使N从1开始,这样它就可以将所有数字完全相加,直到达到N。
#include <stdio.h>
int sum(int n);
int main() {
int n, input, sum;
sum = 0;
scanf("%d", &n);
for (n = 0; n <= input; n++) {
sum += n;
}
printf("%d", sum);
return 0;
}
int sum(int n) {
int i, n, sum = 0;
scanf("%d", &n);
for (i = 1; i <= n; i += 1){
sum += i;
}
return n;
}
当输入为4时我预期是20,但实际输出是10。
最佳答案
我本来是这样写的,备注是修改的地方
#include <stdio.h>
int sum(int n);
int main() {
int n, input, sum;
// sum = 0; // no need for this
scanf("%d", &n);
/* the next for has no use
for (n = 0; n <= input; n++) {
sum += n;
} */
// I would be adding some input sanitazing if possible here
printf("%d", sum(n));
return 0;
}
int sum(int n) {
int i, /*n, */ rsum = 0; // n is already a parameter, rsum for running sum
// scanf("%d", &n); // nope nope, scanf and printf should be avoided in functions
for (i = 1; i <= n; i++){ // changed i +=1 with i++ , easier to read
for (j=1;j<=i;j++) // need this other loop inside
rsum += j;
}
return rsum;
}
关于c - 如何创建一个函数并获得先前数字的累加和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56235869/