C语言:整数数组的平均值* 函数原型 long long ArrayAvg(const long long *array, int size); 说明:array 为数组的起始地址,size 为数组元素个数。函数值为数组元素的平均值。 注:函数值为整数,需作四舍五入处理。
时间: 2024-09-29 11:10:06 浏览: 51
在C语言中,计算整数数组的平均值通常涉及到遍历数组并将所有元素相加,然后除以数组的大小。函数`ArrayAvg`接收两个参数:一个指向整型数组的指针`array`和数组的长度`size`。这里的关键点是要注意数据类型的精确性和取整规则,因为题目提到结果需要是`long long`类型,并且可能涉及浮点数到整数的转换,可能需要用到`LLONG_MAX`作为上限以防溢出。
下面是一个简单的实现思路:
```c
#include <stdio.h>
#include <stdint.h> // 包含长整型定义
// 使用long long保证精度并进行四舍五入处理
long long ArrayAvg(const long long* array, int size) {
long long sum = 0; // 初始化元素和
for (int i = 0; i < size; i++) {
sum += array[i]; // 遍历数组并累加元素
}
// 使用LDBL_MINMAX来进行四舍五入,这取决于平台的定义
const long long half = LDBL_MIN / 2;
if (half == 0 && sum % 2 != 0) { // 如果sum是奇数且不能被2整除
return sum / size + half; // 向上取整
} else {
return sum / size; // 四舍五入
}
}
// 示例
int main() {
long long arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
long long avg = ArrayAvg(arr, size);
printf("The average of the array is: %lld\n", avg);
return 0;
}
```
阅读全文