除法后结果错误
Wrong result after a 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 : %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;
}
当我用计算器计算平均值时,我把文件和 运行 ./a.out 和那个 return 我计算为 13.500000 而不是 13.9。
我看不出错误在哪里,感谢您的帮助!
如果以后能帮到别人我post我的最终代码
#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;
}
在一个练习中,我必须给一个函数一个数组和它的大小来得到它的平均值。 所以我试过了:
#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;
}
当我用计算器计算平均值时,我把文件和 运行 ./a.out 和那个 return 我计算为 13.500000 而不是 13.9。
我看不出错误在哪里,感谢您的帮助!
如果以后能帮到别人我post我的最终代码
#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;
}