输入一段长度为n的数组,并每次去掉它的第一个数,和除了第一个数最小的数,求剩下数的平均值,c语言,不使用函数,不使用指针
时间: 2024-09-20 21:12:19 浏览: 41
1.给出一个整数数组,求其中任意两个元素之差的最大值。
5星 · 资源好评率100%
在 C 语言中,你可以通过遍历数组的方式来解决这个问题,不需要使用函数或指针。下面是一个简单的解决方案:
```c
#include <stdio.h>
#include <stdlib.h>
double averageWithoutFirstAndMin(int arr[], int n) {
// 如果数组只有一个元素或为空,则直接返回该元素作为平均值
if (n <= 1) {
return arr[0];
}
double sum = arr[1]; // 初始化总和为第二个数
int minIndex = 2; // 记录最小数的索引从第三个开始
// 遍历数组,找出剩余部分的和及最小值
for (int i = 2; i < n; ++i) {
if (arr[i] < arr[minIndex]) {
minIndex = i;
}
sum += arr[i];
}
// 当找到最小值后,计算平均值,排除第一个和最小值
sum -= arr[0]; // 减去第一个数
sum -= arr[minIndex]; // 减去最小值
return sum / (n - 2); // 返回剩余数的平均值
}
int main() {
int arr[] = {5, 3, 8, 1, 9, 2}; // 示例数组
int n = sizeof(arr) / sizeof(arr[0]);
double result = averageWithoutFirstAndMin(arr, n);
printf("剩下的数的平均值为: %.2f\n", result);
return 0;
}
```
这个程序首先检查数组的大小,然后计算剩余部分的总和以及除第一个数外的最小值。最后,它将总和减去这两个值并除以剩余元素的数量,得到结果。
阅读全文