刚开始,但无法解决这个问题。此代码用于制作数组并通过增加的顺序对其进行排序
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]);
}