编写函数,求一个数组中元素的最大值和平均值。利用函数求给定数组{6,2,3, -5,0,17,12,4,-4,10}的最大值和平均值。
时间: 2024-05-10 22:19:24 浏览: 24
以下是求最大值和平均值的函数代码:
```python
def max_avg(arr):
max_val = arr[0]
sum_val = 0
for val in arr:
if val > max_val:
max_val = val
sum_val += val
avg_val = sum_val / len(arr)
return max_val, avg_val
```
使用该函数求给定数组{6,2,3, -5,0,17,12,4,-4,10}的最大值和平均值的代码如下:
```python
arr = [6,2,3, -5,0,17,12,4,-4,10]
max_val, avg_val = max_avg(arr)
print("最大值为:", max_val)
print("平均值为:", avg_val)
```
输出结果为:
```
最大值为: 17
平均值为: 5.5
```
相关问题
编写一个Java程序,定义一个类并在该类中编写函数calc,传入一个整型数组(一维数组),能够算出该数组中的最大值,最小值和平均值,让主函数调用这个函数并获得这些求出的值
在Java中,你可以创建一个名为`ArrayCalculator`的类,包含一个静态方法`calculate()`来完成这个任务。下面是一个简单的示例:
```java
public class ArrayCalculator {
// 定义静态方法,接收整数数组作为参数
public static void calculate(int[] array) {
if (array == null || array.length == 0) {
System.out.println("输入的数组为空或长度为零");
return;
}
// 计算最大值
int max = Arrays.stream(array).max().orElse(Integer.MIN_VALUE);
// 计算最小值
int min = Arrays.stream(array).min().orElse(Integer.MAX_VALUE);
// 计算平均值
double average = Arrays.stream(array).average().orElse(Double.NaN);
System.out.println("最大值: " + max);
System.out.println("最小值: " + min);
System.out.println("平均值: " + average);
}
// 主函数入口点,可以在这里测试calculate()方法
public static void main(String[] args) {
int[] testArray = {5, 10, 15, 20, 25};
calculate(testArray);
}
}
```
在这个例子中,`calculate()`方法首先检查数组是否为空或长度为零,然后使用Java 8的`Arrays.stream()`和`max()`、`min()`以及`average()`方法来找到最大值、最小值和平均值。
运行`main`函数会显示给定数组的这些统计信息。如果你想让用户输入数组,你需要从命令行或用户界面读取数据。
2、在单片机编程中,给定一个数组uint8_t data[10],请写一个子函数,实现功能为:去掉给定数组内两个最大值,两个最小值,返回剩下6个数的平均值
在单片机编程中,为了实现这个功能,可以编写一个子函数,首先对数组进行排序,然后删除最大和最小的元素,再计算剩余六元素的总和并除以6得到平均值。这里是一个简单的步骤描述:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义一个辅助函数用于比较数值大小
int compare(const void *a, const void *b) {
return (*(uint8_t*)a - *(uint8_t*)b);
}
// 主函数,包含数组和子函数
void processArray(uint8_t data[], int len, float* average) {
// 对数组进行排序
qsort(data, len, sizeof(uint8_t), compare);
// 初始化变量
uint8_t removed[2] = {data[0], data[len-1]}; // 存放最大和最小值
int remainingSum = 0;
int count = 0;
// 删除最大和最小值,并累加剩余数值
for (int i = 0; i < len && count < 6; ++i) {
if (i != 0 && i != len-1) { // 避免取第一个和最后一个
remainingSum += data[i];
count++;
}
}
// 计算并存储平均值
if (count > 0) {
*average = (float)remainingSum / count;
} else {
*average = 0; // 如果删除了所有数,设置平均值为0
}
}
// 示例主程序
int main() {
uint8_t data[10] = {5, 2, 9, 1, 7, 4, 8, 3, 6, 10};
float average;
processArray(data, sizeof(data)/sizeof(data[0]), &average);
printf("平均值: %f\n", average);
return 0;
}
```
阅读全文