【发布时间】:2020-02-20 10:06:57
【问题描述】:
对 C 来说非常陌生,无论如何都要编写一个程序,您可以在其中输入存储在单独数组中的双精度对。我创建了一个函数来获取数字的平均值,但是当我在 main 内部调用它时,值是不同的。有任何想法吗?
平均函数:
mean(double *arr)
{
double sum = 0.0;
double meanValue = 0.0;
int i;
for (i = 0; i < arr[i]; i++)
{
sum += arr[i];
meanValue = sum / i;
}
printf("\nmean: %.3lf", meanValue);
}
主要:
double num1[1001];
mean(num1);
而且,我正在使用以下方法获取 num1 和 num2 值:
for (k = 0; (scanf_s("%lf,%lf", &num1[k], &num2[k] ) == 2); k++)
【问题讨论】:
-
i < arr[i]作为循环条件毫无意义。 -
你需要将数组的大小传递给函数,然后使用
i < size。 -
而且你只需要在循环外计算一次
meanValue。 -
应该是
meanValue = sum / size; -
@Barmar 喜欢 sizeof(arr)?
标签: c