今天无聊复习了下一维数组排序,突想试试二维数组和交错数组。下面是小弟我乱写的交错数组排序。
static void Main(string[] args)
{
int[][] No = new int[8][];
No[0] = new int[8];
No[1] = new int[8]; No[0][0]=33;
No[0][1]=23;
No[0][2]=5;
No[0][3]=6;
No[0][4]=24;
No[0][5]=65;
No[0][6]=34;
No[0][7]=88; No[1][0] = 32;
No[1][1] = 34;
No[1][2] = 45;
No[1][3] = 13;
No[1][4] = 78;
No[1][5] = 90;
No[1][6] = 15;
No[1][7] = 76;
Console.WriteLine("排序前的数组为:");
for (int i = 0; i < No[i].Length; i++)
{
for (int j = 0; j < No[i].Length; j++)
{
Console.Write(No[i][j] + ",");
}
}
for (int i = 0; i < No.Length - 1; i++)
{
for (int j = 0; j < No.Length - 1 - i; j++)
{
if (No[i][j] > No[i][j + 1])
{
int no = No[i][j];
No[i][j] = No[i][j + 1];
No[i][j + 1] = no;
}
}
}
Console.WriteLine("\n排序后的数组为:");
for (int i = 0; i < No[i].Length; i++)
{
for (int j = 0; j < No[i].Length; j++)
{
Console.Write(No[i][j] + ",");
} }
Console.ReadLine();程序运行到输出排序前数组(排序前数组都输出来了),然后就出现错误。错误在35行。
这样能排么- -! 有高手愿意分析下吗?。
谢谢拉-0-
static void Main(string[] args)
{
int[][] No = new int[8][];
No[0] = new int[8];
No[1] = new int[8]; No[0][0]=33;
No[0][1]=23;
No[0][2]=5;
No[0][3]=6;
No[0][4]=24;
No[0][5]=65;
No[0][6]=34;
No[0][7]=88; No[1][0] = 32;
No[1][1] = 34;
No[1][2] = 45;
No[1][3] = 13;
No[1][4] = 78;
No[1][5] = 90;
No[1][6] = 15;
No[1][7] = 76;
Console.WriteLine("排序前的数组为:");
for (int i = 0; i < No[i].Length; i++)
{
for (int j = 0; j < No[i].Length; j++)
{
Console.Write(No[i][j] + ",");
}
}
for (int i = 0; i < No.Length - 1; i++)
{
for (int j = 0; j < No.Length - 1 - i; j++)
{
if (No[i][j] > No[i][j + 1])
{
int no = No[i][j];
No[i][j] = No[i][j + 1];
No[i][j + 1] = no;
}
}
}
Console.WriteLine("\n排序后的数组为:");
for (int i = 0; i < No[i].Length; i++)
{
for (int j = 0; j < No[i].Length; j++)
{
Console.Write(No[i][j] + ",");
} }
Console.ReadLine();程序运行到输出排序前数组(排序前数组都输出来了),然后就出现错误。错误在35行。
这样能排么- -! 有高手愿意分析下吗?。
谢谢拉-0-
{
for (int j = 0; j < No[i].Length; j++)
{
Console.Write(No[i][j] + ",");
}
}
---------------------
第一个for 里的 i < No[i].Length有问题 i=3是No[i].Length是什么
只能操作0,1的数据,其他的都是null