c# 每次传入一个数值 放回最大和最小,在把返回的最大最小与传入的值比较 剔除0
时间: 2024-09-23 19:11:08 浏览: 30
C#自定义窗体的最大化、最小化和关闭按钮
在 C# 中,你可以创建一个函数来处理这样的需求。首先,你可以定义一个名为 `GetMinMax` 的方法,它接受一个整数数组作为输入,并返回一个元组 `(max, min)`,分别表示数组中的最大值和最小值。然后,你需要遍历数组,找出最大值和最小值,同时检查并剔除0。
下面是一个简单的示例:
```csharp
using System;
using System.Linq;
public static (int Max, int Min) GetMinMax(int[] numbers, out bool hasZero)
{
hasZero = false; // 初始化有零的标志为false
if (numbers == null || numbers.Length == 0)
{
return (default(int), default(int));
}
int max = numbers[0];
int min = numbers[0];
foreach (var num in numbers)
{
if (num == 0)
{
hasZero = true;
continue; // 如果遇到0,跳过剩余的计算
}
max = Math.Max(max, num);
min = Math.Min(min, num);
}
return (max, min);
}
// 使用示例
int[] values = { 5, 0, 9, -1, 7 };
bool hasZeroInValues;
(int max, int min) = GetMinMax(values, out hasZeroInValues);
Console.WriteLine($"Max: {max}, Min: {min}");
if (hasZeroInValues)
{
Console.WriteLine("Array contains a zero.");
}
```
在这个例子中,`GetMinMax` 函数会返回一个包含最大值和最小值的元组,并通过 `hasZero` 参数告诉你是否发现了0。如果数组中存在0,该函数会在返回之前更新 `hasZero` 为 `true`。
阅读全文