例如我的数组是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];
}
感谢。
答案 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)
仔细看看,如果您有疑问,请告诉我。