那我应该如何让brr的数据传入main中呢
时间: 2024-10-02 14:04:28 浏览: 16
brr.rar_指标BRR
如果你想在 `main` 函数中使用 `jia` 函数并将 `brr` 数组的计算结果传递回来,你需要对 `jia` 函数进行一些调整。这里是一个简单的修改方案:
```c
#include<stdio.h>
int* jia(int arr[], int m, int n) { // 将函数返回类型改为指向数组的指针
int *brr = malloc((n - m + 1) * sizeof(int)); // 动态分配内存给返回的数组
for (int i = 0; i < n - m; ++i) {
int sum = 0;
int k = 0;
while (k < m) {
sum += arr[k];
++k;
}
brr[i] = sum; // 更新累加和到新分配的数组中
}
return brr; // 返回指向新数组的指针
}
int main() {
int n, m;
scanf("%d %d", &n, &m);
int arr[n] = {0};
int *brr = NULL; // 初始化 brr 指针
for (int r = 0; r < n; ++r) {
scanf("%d", &arr[r]);
}
brr = jia(arr, m, n); // 调用 jia 并接收返回的指针
// 现在你可以使用 brr 数组了
printf("The cumulative sums are: ");
for (int i = 0; i < n - m; ++i) {
printf("%d ", brr[i]); // 打印每个位置的累加和
}
free(brr); // 别忘了释放动态分配的内存
printf("\n");
return 0;
}
```
在这个修改后的版本中,`jia` 函数返回一个指向 `brr` 数组的指针,主函数里接收到这个指针后可以访问并操作 `brr` 中的内容。记得在结束程序时调用 `free` 函数释放动态分配的内存。
阅读全文