pintia C语言n个数最大值,最小值和平均值
时间: 2024-12-06 10:22:59 浏览: 18
PTA(pintia)中的C语言题库
5星 · 资源好评率100%
在C语言中,为了找到一组整数的最大值、最小值和平均值,你可以编写一个函数来处理这个任务。这里是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h> // 包含处理内存分配的头文件
// 函数声明
void findMinMaxAndAverage(int arr[], int n, int *max, int *min, float *average);
int main() {
int numbers[] = {5, 10, 15, 20, 25}; // 你要处理的一组整数
int size = sizeof(numbers) / sizeof(numbers[0]);
int max_val, min_val;
float avg;
// 调用函数并传递数组、大小和指针地址
findMinMaxAndAverage(numbers, size, &max_val, &min_val, &avg);
printf("最大值: %d\n", max_val);
printf("最小值: %d\n", min_val);
printf("平均值: %.2f\n", avg); // 输出两位小数的平均值
return 0;
}
// 函数实现,计算并返回最大值、最小值和平均值
void findMinMaxAndAverage(int arr[], int n, int *max, int *min, float *average) {
*max = arr[0]; // 假设第一个元素为初始最大值
*min = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] > *max) {
*max = arr[i];
} else if (arr[i] < *min) {
*min = arr[i];
}
}
*average = (float)sum(arr, n) / n; // 计算平均值,假设sum函数用于求和
}
// 求和函数,这里仅作示例,实际项目中需要你自己实现
int sum(int arr[], int n) {
int result = 0;
for (int i = 0; i < n; i++) {
result += arr[i];
}
return result;
}
```
在这个例子中,`findMinMaxAndAverage` 函数遍历数组,找出最大值和最小值,然后通过调用 `sum` 函数来计算平均值。`main` 函数则调用这些功能并显示结果。
注意,对于大型数据集,直接在循环内累加可能会导致溢出,此时可以考虑使用 `long long` 或其他更大范围的数据类型,或者在求和之前先将所有数字存储在一个容器中再求总和。
阅读全文