所以我很困惑为什么我的代码无法正常工作。我有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不允许在后续函数中传递数组,但我不太确定。对我在做什么错有任何想法吗?
答案 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;