[英]Array.Sort() not sorting correctly
开始并无法弄清楚这一点。 此代码旨在创建数组并按顺序对其进行排序
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 40 0 70 60 90 100 40 0
它输出这个
60
0
100
100
40
40
40
60
60
70
80
90
为什么会这样输出? 它已经完成了一半的工作,但为什么前四个整数是这样的。 似乎 0 也变成了 60。如果不是奇数 60,我会假设它仅根据数字的前 2 位数字进行排序。
想知道我在这里做错了什么
您似乎正在对错误的数组进行排序? 也许:
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]);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.