c - C 中连续元素的总和

标签 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];
}

谢谢。

最佳答案

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

相关文章:

CUDA 编译器错误。没有指定输入文件;

c - 未定义对另一个库函数的引用

c++ - 有什么区别: Creating structure pointer inside a structure of the same type with the keyword struct

c - If 语句中使用的字符串指针不起作用

c - 在 C 中用非常小的数字实现方程 - 普朗克定律生成黑体

c - GTk 每个小部件加速器

c++ - C/C++ 中类似字典的实现(更新信息)

c - C 中的枚举是有符号的还是无符号的?

c - C(Linux) 中的套接字 - 如何获取客户端 IP 和端口

c - 错误函数未正确执行