C对数组中任意数目的任意相邻元素求和
时间: 2023-08-14 11:05:48 浏览: 43
可以使用循环遍历数组,依次累加相邻的元素即可。下面是示例代码:
```c
int sum(int arr[], int n) {
int result = 0;
for (int i = 0; i < n - 1; i++) {
result += arr[i] + arr[i+1];
}
return result;
}
```
其中,`arr`是待求和的数组,`n`是数组的长度。循环从0开始,到n-2结束,每次将当前元素和下一个元素相加,并累加到结果中。最后返回累加结果。
相关问题
对数组中任意数目的任意相邻元素求和储存到另一个数组中
可以使用类似于上面的代码,只不过在累加相邻元素的同时,将结果储存在另一个数组中。下面是示例代码:
```c
void sum_to_arr(int arr[], int n, int result[], int m) {
for (int i = 0; i < n - 1 && i < m; i++) {
result[i] = arr[i] + arr[i+1];
}
}
```
其中,`arr`是待求和的数组,`n`是数组的长度,`result`是储存结果的数组,`m`是结果数组的长度。循环从0开始,到n-2或者m-1结束,每次将当前元素和下一个元素相加,并将结果储存到结果数组中。如果结果数组长度不够,只储存前面的结果。这里采用的是`void`类型,表示不需要返回值,结果直接存储在`result`数组中。
对数组中任意数目的任意相邻几个元素求和储存到另一个数组中
可以使用类似于上面的代码,不同的是在累加元素的时候需要考虑相邻元素个数的问题。下面是示例代码:
```c
void sum_n_to_arr(int arr[], int n, int result[], int m, int num) {
for (int i = 0; i < n - num + 1 && i < m; i++) {
int s = 0;
for (int j = 0; j < num; j++) {
s += arr[i+j];
}
result[i] = s;
}
}
```
其中,`arr`是待求和的数组,`n`是数组的长度,`result`是储存结果的数组,`m`是结果数组的长度,`num`是相邻元素个数。外层循环从0开始,到n-num结束或者m-1结束,内层循环从外层循环的当前位置开始,累加相邻的`num`个元素,并将结果储存到结果数组中。如果结果数组长度不够,只储存前面的结果。这里仍然采用的是`void`类型,表示不需要返回值,结果直接存储在`result`数组中。