例如我的数组是 arr[5] = {1, 2, 3, 4, 5}
我想要像这样的连续元素的总和
sum = 3 (1+2)
sum = 5 (2+3)
sum = 7 (3+4)
sum = 9 (4+5)
我该如何解决这个问题?
由于有人投票结束这个问题,因为没有表现出任何努力,这是我在提出这个问题之前尝试过的(我使用了 scanf,但上面的数组只是一个例子)。
int n, arr[10], i, j = i+1, sum = 0;
scanf("%d", &n);
for(i = 0; i<n; i++)
{
scanf("%d", &arr[i]);
sum = arr[i] + arr[j];
}
谢谢。
最佳答案
有多种方法可以对数组中的相邻元素求和。防止读取超出数组末尾的可能性的一种方法是从 1
开始迭代并对 array[i-1] + array[i]
求和>。例如,您可以执行如下操作:
#include <stdio.h>
int main (void) {
int arr[] = { 1, 2, 3, 4, 5 };
for (size_t i = 1; i < sizeof arr/sizeof *arr; i++)
printf ("sum %d = (%d + %d)\n", arr[i-1]+arr[i], arr[i-1], arr[i]);
return 0;
}
示例使用/输出
$ ./bin/arrsum
sum 3 = (1 + 2)
sum 5 = (2 + 3)
sum 7 = (3 + 4)
sum 9 = (4 + 5)
仔细检查一下,如果有疑问请告诉我。
关于c - C 中连续元素的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46393712/