c# c# double a {0,0}数组和一个double b数 剔除0后 比较大小后 返回最大和最小值
时间: 2024-11-09 22:19:09 浏览: 5
c#输出10个数的最大值、最小值、平均值和总和。.rar
在 C# 中,你可以使用 `List<double>` 或者 `double[]` 数组来存储非零数值,因为数组直接初始化元素可能会很麻烦。首先,你需要创建一个列表并剔除其中的0:
```csharp
List<double> numbers = new List<double>() { 0, 0, 5, 10, 0, -3, 8 };
numbers.RemoveAll(n => n == 0); // 移除所有0
if (numbers.Count > 0) {
// 如果有非零值,比较并返回最大值和最小值
double max = numbers.Max();
double min = numbers.Min();
Console.WriteLine($"最大值:{max}");
Console.WriteLine($"最小值:{min}");
}
```
对于一个固定大小的数组,可以先检查是否有非零元素,然后进行类似的操作:
```csharp
double[] array = new double[] { 0, 0, 5, 10, 0, -3, 8 };
int nonZeroCount = Array.IndexOf(array, 0); // 查找第一个0的位置
if (nonZeroCount == -1 || nonZeroCount == array.Length - 1) {
double? maxValue = null;
double? minValue = null;
for (int i = 0; i < array.Length; i++) {
if (array[i] != 0) {
if (maxValue == null)
maxValue = array[i];
else
maxValue = Math.Max(maxValue.Value, array[i]);
if (minValue == null)
minValue = array[i];
else
minValue = Math.Min(minValue.Value, array[i]);
}
}
if (maxValue.HasValue && minValue.HasValue) {
Console.WriteLine($"最大值:{maxValue}");
Console.WriteLine($"最小值:{minValue}");
} else {
Console.WriteLine("数组中全是0,无法找到最大值和最小值");
}
} else {
Console.WriteLine("数组包含0,需要移除后再进行比较");
}
```
阅读全文