Leon_li_li
Leon_li_li
2020-04-02 21:55
采纳率: 50%
浏览 306

主函数如何编写定义一个长度不固定的数组,然后调用input函数得到这个数组???

int input (int a[],int n)
{
int i;
for(i=0;i cin>>a[i];
}
double aver(int a[], int n)
{
int sum1,j;
double M;
sum1=0;
for(j=1;j sum1+=a[j];
M=(double)sum1/n;
return M;
}
double stddev(int a[],int n)
{
double M,D;
M=aver(a,n);
int sum2,k;
sum2=0;
for (k=0;k sum2+=(a[k]-M)*(a[k]-M);
D=float (sqrt(float (sum2/n)));
return D;
}
int main()
{
int n;
cin>>n;
int a[n];
a[n]=input(a,n);
double fc;
fc=stddev(a,n);
cout<<"输入的所有数的均方差是"<<fc<<endl;
return 0;
}
如何在主函数中定义一个长度不固定的数组

然后调用input函数得到这个数组????

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • caozhy
    已采纳
    可以用指针
    int * a = (int *)malloc(sizeof(int) * n);
    input(a, n);
    
    input没有必要写返回值
    void input(int * a, int n)
    {
    for (int i = 0; i < n; i++) cin >> a[i];
    }
    
    点赞 评论
  • qq_39554698
    小学狗喵喵叫 2020-04-03 09:14

    你的写法在GCC是可以的,但是在VS不行

    void input(int * a, int n)
    {
        for (int i = 0; i < n; i++)
            cin >> a[i];
    }
    
    int* a = new int[n];
    ...
    //结束时
    delete[] a;
    
    点赞 评论

相关推荐