C语言中怎么在一组数据中去掉最大值和最小值 不用数组
时间: 2024-11-06 16:14:24 浏览: 3
C语言课设1二维数组的应用2删除指定字符3楼盘管理程序.pdf
在C语言中,如果你不想直接使用数组,可以使用两个变量分别存储当前找到的最大值和最小值,然后遍历整个数据集,逐个比较元素并更新这两个变量。下面是一个简单的示例:
```c
#include <stdio.h>
// 假设我们有一个整数变量list,它代表了数据流
int list = /* 一系列整数... */;
int currentMax, currentMin;
void removeMinMax(int value) {
// 如果这是第一个数字,或当前值比已知的最大值大
if (currentMax == 0 || value > currentMax) {
currentMax = value;
}
// 同理,如果这是第一个数字,或当前值比已知的最小值小
if (currentMin == 0 || value < currentMin) {
currentMin = value;
}
// 检查是否需要替换最大值或最小值
if (value != currentMax && value != currentMin) {
// 如果这个值既不是最大也不是最小,则替换列表中的某个元素(这里假设`list`是一个实际的数据流)
list[currentMax == value] = value; // 根据需要修改位置
}
}
int main() {
int data = ...; // 输入数据
removeMinMax(data);
// 这里处理处理后的数据流...
return 0;
}
```
在这个例子中,`removeMinMax`函数会遍历一次数据,同时更新最大值和最小值。请注意,这种方法不会改变原始输入数据,而是替换掉原数据集中的一次。如果数据是连续存储的,那么你需要找到合适的替换点。
阅读全文