填充和排序数组
Populating & Sorting an Array
所以基本上我需要做的是创建一个数组,让用户填充数组,然后我只对数组进行冒泡排序。我对我要写的东西有基本的想法,问题是我保留 运行 程序,然后一旦我输入 10 个值,我就会收到错误消息“索引超出数组范围”。我已经对代码进行了一些尝试,但似乎无法解决问题。我还是新手所以请耐心等待我。
class Program
{
public static void Main(string[] args)
{
Console.Write("\n\n");
Console.Write("Input 10 or less values then hit enter to sort values");
Console.Write("\n\n");
int[] Arr = new int[10];
for ( int i = 0; i <= 10; i++)
{
Console.Write("Input Value\n");
Arr[i] = int.Parse(Console.ReadLine());
}
for (int i = 0; i <= 10; i++)
{
for (int j = Arr.Length - 1; j > i; j--)
{
if (Arr[j] < Arr[j - 1])
{
var temp = Arr[j];
Arr[j] = Arr[j - 1];
Arr[j - 1] = temp;
}
}
}
foreach (int i in Arr)
{
Console.WriteLine(i);
}
Console.Read();
}
}
}
将for ( int i = 0; i <= 10; i++)
替换为for ( int i = 0; i < 10; i++)
否则,索引从 0 到 10,这是 11 个值。
更好的是,使用数组 .Length
属性
for ( int i = 0; i < arr.Length; i++)
{
// Do things with arr[i]
}
所以基本上我需要做的是创建一个数组,让用户填充数组,然后我只对数组进行冒泡排序。我对我要写的东西有基本的想法,问题是我保留 运行 程序,然后一旦我输入 10 个值,我就会收到错误消息“索引超出数组范围”。我已经对代码进行了一些尝试,但似乎无法解决问题。我还是新手所以请耐心等待我。
class Program
{
public static void Main(string[] args)
{
Console.Write("\n\n");
Console.Write("Input 10 or less values then hit enter to sort values");
Console.Write("\n\n");
int[] Arr = new int[10];
for ( int i = 0; i <= 10; i++)
{
Console.Write("Input Value\n");
Arr[i] = int.Parse(Console.ReadLine());
}
for (int i = 0; i <= 10; i++)
{
for (int j = Arr.Length - 1; j > i; j--)
{
if (Arr[j] < Arr[j - 1])
{
var temp = Arr[j];
Arr[j] = Arr[j - 1];
Arr[j - 1] = temp;
}
}
}
foreach (int i in Arr)
{
Console.WriteLine(i);
}
Console.Read();
}
}
}
将for ( int i = 0; i <= 10; i++)
替换为for ( int i = 0; i < 10; i++)
否则,索引从 0 到 10,这是 11 个值。
更好的是,使用数组 .Length
属性
for ( int i = 0; i < arr.Length; i++)
{
// Do things with arr[i]
}