Array.Sort()排序不正确



刚开始,但无法解决这个问题。此代码用于制作数组并通过增加的顺序对其进行排序

int n = Convert.ToInt32(Console.ReadLine());
string readLine = Console.ReadLine();
string[] values = readLine.Split(' ');
int[] intArray = new int[n];
for (int i = 0; i < n; i++)
{
intArray[i] = Convert.ToInt32(values[i]);
Array.Sort(values);
{
Console.WriteLine(intArray[i]);
}

如果我输入这些输入:

12

60 80 100 40 0 70 60 90 100 40 0

它输出这个

60
0
100
100
40
40
40
60
60
70
80
90

为什么它会这样输出?它已经完成了一半的工作,但为什么前四个整数是这样的。看起来0也变成了60。如果不是奇数60,我会假设它只根据数字的前两位进行排序。

想知道我在这里做错了什么

您似乎在对错误的数组进行排序?也许:

int[] intArray = new int[values.Length];
for (int i = 0; i < values.length; i++)
{
intArray[i] = Convert.ToInt32(values[i]);
}
Array.Sort(intArray);
for (int i = 0; i < intArray.Length; i++)
{
Console.WriteLine(intArray[i]);
}

或者更简洁:

int[] intArray = Array.ConvertAll(values, s => Convert.ToInt32(s));
Array.Sort(intArray);
for (int i = 0; i < intArray.Length; i++)
{
Console.WriteLine(intArray[i]);
}

相关内容

  • 没有找到相关文章

最新更新