输入一段数组,从头到尾逐渐去掉一个数字,并求出每次去除一个数字后,数组剩余数的平均值,并输出,C语言
时间: 2024-09-20 17:10:42 浏览: 71
在C语言中,你可以通过循环遍历数组并计算每一次移除一个元素后的平均值来实现这个功能。下面是一个简单的示例程序,假设我们有一个整型数组`arr[]`,并且数组长度为`n`:
```c
#include <stdio.h>
double average_after_remove(int arr[], int n) {
double sum = 0;
for (int i = 0; i < n; ++i) {
sum += arr[i];
}
// 计算初始平均值
double avg_initial = sum / n;
// 初始化新数组sum用于累计,count用于记录已处理元素
double new_sum = sum;
int count = n;
// 循环移除元素并更新平均值
for (int i = 0; i < n - 1; ++i) {
new_sum -= arr[i]; // 移除当前元素
count--; // 减少元素数量
avg_initial = new_sum / count; // 更新平均值
}
return avg_initial;
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
printf("平均值(原始): %.2f\n", average_after_remove(arr, n));
// 输出每次移除一个元素后的平均值
for (int i = 0; i < n; ++i) {
printf("移除第 %d 个元素后的平均值: %.2f\n", i + 1, average_after_remove(arr, n - i));
}
return 0;
}
```
这个程序首先计算整个数组的平均值,然后在主循环中依次移除一个元素并重新计算新的平均值。注意,在实际应用中,数组通常不会在原地修改,这里简化了演示。
阅读全文