用C#写一个中位数平均的代码
时间: 2024-03-16 07:44:04 浏览: 15
以下是一个使用 C# 实现中位数平均的示例代码:
```csharp
public static double MedianAverage(List<double> values)
{
if (values.Count == 0)
{
throw new ArgumentException("The list cannot be empty.");
}
values.Sort();
int n = values.Count;
int m = n / 2;
double median = values[m];
if (n % 2 == 0)
{
median = (median + values[m - 1]) / 2;
}
double sum = 0;
for (int i = 0; i < n; i++)
{
sum += values[i];
}
double average = sum / n;
return (median + average) / 2;
}
```
这个函数接受一个 double 类型的 List 作为输入,首先对列表进行排序,然后计算中位数。如果列表长度为偶数,则取中间两个数的平均值作为中位数。接着,计算列表的平均值,并返回中位数和平均值的平均值作为中位数平均值。如果列表为空,则抛出 ArgumentException 异常。
相关问题
如何用C#写一个二进制转换十进制的代码
下面是使用 C# 实现二进制转换十进制的代码:
```csharp
using System;
class Program
{
static void Main(string[] args)
{
string binaryString = "11010101"; // 二进制字符串
int decimalNumber = BinaryToDecimal(binaryString); // 转换为十进制数字
Console.WriteLine(decimalNumber); // 输出结果
}
static int BinaryToDecimal(string binaryString)
{
int decimalNumber = 0;
int bitValue = 1; // 位权,从最低位开始
for (int i = binaryString.Length - 1; i >= 0; i--)
{
if (binaryString[i] == '1')
{
decimalNumber += bitValue;
}
bitValue *= 2; // 位权每次乘以2
}
return decimalNumber;
}
}
```
在上面的代码中,我们首先定义了一个二进制字符串 `binaryString`,然后调用 `BinaryToDecimal` 函数将其转换为十进制数字,最后输出结果。`BinaryToDecimal` 函数中,我们使用循环从最高位到最低位依次计算每一位的值,并将其累加到 `decimalNumber` 变量中。每次循环结束后,位权 `bitValue` 都要乘以 2,以便计算下一位的值。最后返回 `decimalNumber` 即可。
C# 代码中 如何实现三位数 自增长
在 C# 代码中,可以使用一个整型变量来表示三位数,然后通过自增操作实现自增长。示例代码如下:
```csharp
int num = 0; // 初始值为0
while (num < 1000) // 当num小于1000时执行循环
{
num++; // 自增1
Console.WriteLine(num.ToString("000")); // 输出三位数,不足三位前面补0
}
```
在上述代码中,使用了一个while循环控制num变量的自增,当num小于1000时循环执行。每次自增1后,使用ToString方法将num转换为三位数,并在不足三位时在前面补0,然后输出到控制台。