用c#编写在控制台输入10个数字,输入时每个数字使用回车分隔,将所有数字存入一个ArrayList中,当所有的数字输入完毕后,对ArrayList中的数字按照从小到大进行排序,并打印出排序后的结果。
时间: 2024-10-23 21:04:35 浏览: 41
在C#中,你可以通过以下步骤实现这个功能:
1. 首先,创建一个ArrayList来存储输入的数字:
```csharp
List<int> numbers = new List<int>();
```
2. 使用`Console.ReadLine()`从控制台获取用户输入,然后将其分割成单个数字。我们将使用`Split`方法,它会返回一个字符串数组,每个元素由回车符分隔:
```csharp
string input = Console.ReadLine();
string[] numberStrings = input.Split('\n');
```
注意:这里我们假设用户每次输入一个数字后按Enter键,如果用户在同一行输入了多个数字,需要稍作调整。
3. 将字符串数组转换为整数并添加到ArrayList中:
```csharp
foreach (string str in numberStrings)
{
int number;
if (int.TryParse(str, out number))
{
numbers.Add(number);
}
else
{
Console.WriteLine("无效的输入,请输入整数。");
break; // 如果遇到非数字字符,可以停止后续处理
}
}
```
4. 对ArrayList进行排序,你可以使用`Sort`方法:
```csharp
numbers.Sort();
```
5. 最后,打印排序后的结果:
```csharp
Console.WriteLine("排序后的数字:");
foreach (int num in numbers)
{
Console.Write(num + " ");
}
Console.WriteLine(); // 结束行
```
完整的代码示例:
```csharp
using System;
using System.Collections.Generic;
class Program
{
static void Main(string[] args)
{
List<int> numbers = new List<int>();
while (true)
{
string input = Console.ReadLine();
string[] numberStrings = input.Split('\n');
foreach (string str in numberStrings)
{
int number;
if (int.TryParse(str, out number))
{
numbers.Add(number);
}
else
{
Console.WriteLine("无效的输入,请输入整数。");
return; // 执行完毕后退出循环
}
}
if (numberStrings.Length == 0) break; // 当一行输入结束后,跳出循环
}
numbers.Sort();
Console.WriteLine("排序后的数字:");
foreach (int num in numbers)
{
Console.Write(num + " ");
}
Console.WriteLine();
}
}
```
阅读全文