到目前为止我已经这样做了,我不知道我的错误在哪里或哪里出错了,我第一次想出了这个程序。我们必须向用户询问我使用动态数组完成的数组中的元素数量。然后我们必须传递 2 个参数,一个是数组的大小,另一个是数组(浮点型)。
该函数应将每个单元格的内容替换为原始数组中从左端到相关单元格的所有单元格内容的总和。例如,如果我有数组 {1,2,3,4,5} 函数应该返回 {1,3,6,10,15}。这是我的程序,请告诉我我必须对现有代码进行哪些更改。
#include <iostream>
using namespace std;
float compute(int x, float arr[]){
float sum=0;
for(int i=0; i<x;i++){
sum+=arr[i];
arr[i]=sum;
}
return arr;
}
int main(){
int x;
cout<<"How many elements you want"<<endl;
cin>>x;
float *p=new float[x];
for(int i=0; i<x; i++){
cin>>p[i];
}
cout<<compute(x,p);
return 0;
}
最佳答案
简单修复,如果你可以修改原始数组
void compute(int x, float arr[])
{
float sum=0;
for(int i=1; i<x ;i++)
arr[i] = arr[i] + arr[i-1];
// return arr; // Not required
}
然后,您可以执行以下操作
compute(x,p);
for(int i= 0 ; i< x; ++i)
std::cout<< p[i] << std::endl;
此外,确保在处理后释放分配的内存
删除[] p;
关于c++ - 函数、数组和动态数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20584135/