Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 除法后的错误结果_C_Division - Fatal编程技术网

C 除法后的错误结果

C 除法后的错误结果,c,division,C,Division,在一个练习中,我必须给一个函数一个数组和它的大小,以得到它的平均值。 所以我试过这个: #include <stdio.h> #include <stdlib.h> double average(double array[], double array_size); int main() { double array[4] = {12.0, 20.0, 8.9, 14.7}; printf("The average of the array is

在一个练习中,我必须给一个函数一个数组和它的大小,以得到它的平均值。 所以我试过这个:

#include <stdio.h>
#include <stdlib.h>

double average(double array[], double array_size);


int main()
{
    double array[4] = {12.0, 20.0, 8.9, 14.7};

    printf("The average of the array is : %lf\n", average(array, 4.0));

    return 0;
}

double average(double array[], double array_size)
{
    int array_average = 0, i = 0;

    while(i < array_size)
    {
        array_average += array[i];
        i++;
    }

    return array_average / array_size;
}
#包括
#包括
双平均(双数组[],双数组大小);
int main()
{
双数组[4]={12.0,20.0,8.9,14.7};
printf(“数组的平均值为:%lf\n”,平均值(数组,4.0));
返回0;
}
双平均(双数组[],双数组大小)
{
int数组_平均值=0,i=0;
while(i<数组大小)
{
数组_average+=数组[i];
i++;
}
返回数组\平均值/数组\大小;
}
我敲打文件并运行./a.out,当我用计算器计算平均值时,返回13.500000而不是13.9


我不知道哪里有错误,谢谢你的帮助

如果这对以后的人有帮助,我会发布我的最终代码

#include <stdio.h>
#include <stdlib.h>

double average(double array[], double array_size);


int main()
{
    double array[4] = {12.0, 20.0, 8.9, 14.7};

    printf("The average of the array is : %lf\n", average(array, 4.0));

    return 0;
}

double average(double array[], double array_size)
{
    double array_average = 0.0;
    int i = 0;

    while(i < array_size)
    {
        array_average += array[i];
        i++;
    }

    return array_average / array_size;
}
#包括
#包括
双平均(双数组[],双数组大小);
int main()
{
双数组[4]={12.0,20.0,8.9,14.7};
printf(“数组的平均值为:%lf\n”,平均值(数组,4.0));
返回0;
}
双平均(双数组[],双数组大小)
{
双数组_平均值=0.0;
int i=0;
while(i<数组大小)
{
数组_average+=数组[i];
i++;
}
返回数组\平均值/数组\大小;
}

为什么您的
数组大小是双倍的?为什么你的
数组\u平均值
是整数?
(int)12.0+(int)20.0+(int)8.9+(int)14.7
12+20+8+14
相同。。。而
54/4.0
13.5
,不要忘记将
array\u size
设置为
int
。在英语中,数组没有性别。您仍然没有将array\u size设置为整数