将一个函数的数组参数传递给上一个函数中使用的另一个函数

时间:2018-11-25 08:15:13

标签: c

所以我很困惑为什么我的代码无法正常工作。我有2个函数,一个函数加数字,另一个函数求平均值。考虑到我不但可以在普通函数中调用add函数来节省几行代码,还尝试了一下。

此外,它们都具有数组作为参数。数组的大小为5,并设置为float。

float addOp(float num[])
{
    int i;
    float ans;

    for(i=0;i<5;i++)
    {
        ans += num[i];
    }

    return ans;
}

float aveOp(float num[])
{   
    float average;

    average = addOp(num) / 5;

    return average; 
}

add函数可以完美地工作,但是当我尝试使用平均值函数时,代码会运行,但是给出的答案却遥遥无期。我以为C不允许在后续函数中传递数组,但我不太确定。对我在做什么错有任何想法吗?

1 个答案:

答案 0 :(得分:4)

问题是addOp()

float addOp(float num[])
{
    int i;
    float ans; /* This is uninitialized */

    for(i=0;i<5;i++)
    {
        ans += num[i];  /* This adds an undefined start point to the 5 numbers*/
    }

    return ans;
}

解决方法是更改​​为

float ans = 0;