-->
当前位置:首页 > Eng > 正文内容

函数题:整数数组的统计 - 平均值

Luz3年前 (2022-12-01)Eng557
请编写函数,求整数数组元素的平均值。

#### 函数原型

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;

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。