函数题:整数数组的统计 - 平均值
请编写函数,求整数数组元素的平均值。
#### 函数原型
c
long long ArrayAvg(const long long *array, int size);
说明:array 为数组的起始地址,size 为数组元素个数。函数值为数组元素的平均值。
注:函数值为整数,需作四舍五入处理。
#### 裁判程序
c
#include <stdio.h>
#include <stdlib.h>
#define arraySize 1024
......
long long ArraySum(const long long *array, int size);
long long ArrayAvg(const long long *array, int size);
int main()
{
long long a[arraySize];
int n;
scanf("%d", &n);
if (n < 1 || n > arraySize)
{
puts("Error!");
exit(1);
}
ArrayInput(a, n);
printf("%lld\n", ArrayAvg(a, n));
return 0;
}
......
/* 你提交的代码将被嵌在这里 */
说明:ArrayInput 函数输入数组,ArraySum 函数求总和。
#### 输入样例
in
10
272 586 419 253 284 983 162 659 874 625
#### 输出样例
out
512
提示:利用前面作业中的 ArraySum 函数求和。
answer:若无答案欢迎评论
设总和为 $$s$$,元素个数为 $$n$$,平均值为 $$p = s / n$$。
若 $$p > 0$$,则四舍五入后的结果应为:
$$ \lfloor \ p + 0.5 \ \rfloor = \lfloor \ s / n + 0.5 \ \rfloor = \lfloor\ (s + n / 2) / n \ \rfloor$$
对应的 C 语句为:
p = (x + n / 2) / n;
同理,若 $$p < 0$$,则对应的 C 语句为:
p = (x - n / 2) / n;
#### 函数原型
c
long long ArrayAvg(const long long *array, int size);
说明:array 为数组的起始地址,size 为数组元素个数。函数值为数组元素的平均值。
注:函数值为整数,需作四舍五入处理。
#### 裁判程序
c
#include <stdio.h>
#include <stdlib.h>
#define arraySize 1024
......
long long ArraySum(const long long *array, int size);
long long ArrayAvg(const long long *array, int size);
int main()
{
long long a[arraySize];
int n;
scanf("%d", &n);
if (n < 1 || n > arraySize)
{
puts("Error!");
exit(1);
}
ArrayInput(a, n);
printf("%lld\n", ArrayAvg(a, n));
return 0;
}
......
/* 你提交的代码将被嵌在这里 */
说明:ArrayInput 函数输入数组,ArraySum 函数求总和。
#### 输入样例
in
10
272 586 419 253 284 983 162 659 874 625
#### 输出样例
out
512
提示:利用前面作业中的 ArraySum 函数求和。
answer:若无答案欢迎评论
设总和为 $$s$$,元素个数为 $$n$$,平均值为 $$p = s / n$$。
若 $$p > 0$$,则四舍五入后的结果应为:
$$ \lfloor \ p + 0.5 \ \rfloor = \lfloor \ s / n + 0.5 \ \rfloor = \lfloor\ (s + n / 2) / n \ \rfloor$$
对应的 C 语句为:
p = (x + n / 2) / n;
同理,若 $$p < 0$$,则对应的 C 语句为:
p = (x - n / 2) / n;