c#二维数组求最大值,最小值,平均值及对数组中数据进行排序,二维数组通过scanf函数从键盘输入
时间: 2024-08-13 08:04:54 浏览: 164
在C#中,处理二维数组(如int[,] arr)并获取最大值、最小值、平均值,以及对数据进行排序,可以通过遍历数组元素和使用内置方法来完成。这里是一个简单的示例:
1. 获取最大值和最小值:
```csharp
using System;
class Program
{
static void Main()
{
int[,] arr = new int[3, 3]; // 假设数组已初始化
// 从键盘读取输入
for (int i = 0; i < arr.GetLength(0); i++)
{
for (int j = 0; j < arr.GetLength(1); j++)
{
Console.Write($"arr[{i}, {j}] = ");
arr[i, j] = Convert.ToInt32(Console.ReadLine()); // 将输入转换为整数
}
}
int max = arr[0, 0], min = arr[0, 0];
for (int i = 0; i < arr.GetLength(0); i++)
{
for (int j = 0; j < arr.GetLength(1); j++)
{
if (arr[i, j] > max)
max = arr[i, j];
if (arr[i, j] < min)
min = arr[i, j];
}
}
Console.WriteLine($"最大值: {max}");
Console.WriteLine($"最小值: {min}");
}
}
```
2. 计算平均值:
```csharp
double sum = 0;
for (int i = 0; i < arr.GetLength(0); i++)
{
for (int j = 0; j < arr.GetLength(1); j++)
{
sum += arr[i, j];
}
}
double average = sum / (arr.GetLength(0) * arr.GetLength(1));
Console.WriteLine($"平均值: {average}");
```
3. 对数组进行排序(这里用LINQ简化,但不适用于C# 2.0版本):
```csharp
using System.Linq;
// 对每个行进行排序
for (int i = 0; i < arr.GetLength(0); i++)
{
Array.Sort(arr, i, arr.GetLength(1)); // 对当前行进行排序
}
// 或者,如果你想要对整个二维数组进行排序,可以这样:
int[][] flattenedArray = arr.Flatten().ToArray();
Array.Sort(flattenedArray);
arr = flattenedArray.reshape(arr.GetLength(0), arr.GetLength(1));
```
记得在C# 2.0中,没有`Array.Sort`,需要自定义排序算法。
阅读全文