C#编程:根据用户输入的一系列数(用数组形参)进行排序,并将排序后的数组通过函数返回值返回给调用程序

2024-11-20 20:38:02
推荐回答(2个)
回答1:

using System;
using System.Collections.Generic;

namespace _3333c
{
class Program
{
static void Main(string[] args)
{
Console.Write("请输入要创建的数组长度:");

string strLen = Console.ReadLine();
int length;
bool isNum = int.TryParse(strLen, out length);//判断输入的能否转为整数
if (!isNum)
{
Main(args);//如果输入不合法而无法转为整数,那么无法创建数组对象,提示继续输入
}

int[] nums = new int[length];
int real = 0;//数组中实际个数
Console.WriteLine("请输入一系列数字,最后按 T 或 t 结束输入");
while (true)
{
string res = Console.ReadLine();
if (res.ToUpper() == "T")//把字符串转为大写,判断是否结束数字输入
{ break; }
int temp;
if (int.TryParse(res, out temp))//判断输入的能否转为整数
{
//注意不要超过数组长度范围
if (real < nums.Length)
{
nums[real] = temp;
real++;
}
else
{
Console.WriteLine("满了,存不下了哦 ☺ 按T或t继续吧");
//可以人性化点,提供Y/N选择,如果选择Y想重新输入,程序重新从Main()开始
}
}
else
{
Console.WriteLine("输入的是森马东东...不认识 %>_<%");
}
}

int[] newNums = SortArray(nums,real);//执行排序方法,并把结果返回

Console.WriteLine("你输入的数字排序后的结果如下:");
foreach (int item in newNums)
{
Console.Write(item);
}

Console.ReadKey();
}

///


/// 最常用的排序方法
///

static int[] SortArray(int[] nums,int real)
{
int temp = 0;

for (int j = 0; j < real; j++)
{
for (int k = j + 1; k < real; k++)
{
if (nums[k] < nums[j])
{
temp = nums[j];
nums[j] = nums[k];
nums[k] = temp;
}
}
}

return nums;
}
}
}

回答2:

http://hi.baidu.com/%D6%ED%D6%ED%D3%EA%CF%EF/blog/item/38898d2f4bad705c4fc22698.html