如何在visual studio中用C#便携一个程序,使用键盘输入一个随机数组,并让他们按升降序输出(不用sort)
时间: 2024-12-12 17:20:40 浏览: 6
要在Visual Studio中编写C#程序来创建一个随机数组并允许用户按键排序(升序或降序),首先你需要引入Random类生成随机数,使用StringBuilder类构建动态数组的输出,以及处理用户的输入指令。下面是一个基本的示例:
```csharp
using System;
using System.Text;
namespace RandomArraySorter
{
class Program
{
static void Main(string[] args)
{
int n, i;
Random random = new Random();
Console.Write("请输入数组长度:");
n = int.Parse(Console.ReadLine());
// 生成随机数组
int[] arr = new int[n];
Console.WriteLine("请输入数组元素(按回车结束):");
for (i = 0; i < n; i++)
{
arr[i] = random.Next(1, 100); // 举个例子,这里生成1到100之间的随机数
Console.Write(arr[i] + " ");
}
Console.WriteLine("\n现在,你可以选择升序或降序排列数组,输入'asc'升序,'desc'降序:");
string userChoice = Console.ReadLine();
// 排序并输出
StringBuilder sortedArrBuilder = new StringBuilder();
switch (userChoice.ToLower())
{
case "asc":
InsertionSortInAscendingOrder(arr, sortedArrBuilder);
break;
case "desc":
InsertionSortInDescendingOrder(arr, sortedArrBuilder);
break;
default:
Console.WriteLine("无效的选择,请输入'asc'或'desc'");
break;
}
Console.WriteLine("排序后的数组:");
Console.WriteLine(sortedArrBuilder.ToString());
}
// 升序插入排序
private static void InsertionSortInAscendingOrder(int[] arr, StringBuilder sortedArrBuilder)
{
for (int i = 1; i < arr.Length; i++)
{
int key = arr[i];
int j = i - 1;
while (j >= 0 && arr[j] > key)
{
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = key;
sortedArrBuilder.Append(key).Append(", ");
}
}
// 降序插入排序
private static void InsertionSortInDescendingOrder(int[] arr, StringBuilder sortedArrBuilder)
{
for (int i = 1; i < arr.Length; i++)
{
int key = arr[i];
int j = i - 1;
while (j >= 0 && arr[j] < key)
{
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = key;
sortedArrBuilder.Append(key).Append(", ");
}
}
}
}
```
运行此程序后,用户会看到提示输入数组长度、生成随机数组,然后可以选择升序或降序排列。程序使用插入排序算法对数组进行操作。
阅读全文