C中连续元素的总和

时间:2017-09-24 18:56:17

标签: c

例如我的数组是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];
}

感谢。

2 个答案:

答案 0 :(得分:1)

您可以使用循环:

#include <stdio.h>

int main()
{
    int arr[] = {1, 2, 3, 4, 5};
    for (int i = 1; i < sizeof arr/sizeof *arr; i++){
        printf("%d + %d = % d\n", arr[i-1], arr[i], (arr[i-1]+arr[i]));
    }
}

您可以随时格式化printf()以根据需要显示输出。

答案 1 :(得分:1)

有许多方法可以对数组中的相邻元素求和。一种可以防止超出数组末尾读取的可能性的方法是在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)

仔细看看,如果您有疑问,请告诉我。