刚学编程不久的新人,想请大家来看看怎么解决.
现在有一个二维数组a,是7行5列:
{0,0,0,0,0},
{1,1,0,1,0},
{1,0,0,1,1},
{1,0,0,0,1},
{1,1,0,2,2},
{2,1,0,2,2},
{2,2,2,2,2}.
由于最后一列有0,1,2三种不同的值,以0结尾的有2行,以1结尾的有2行,以2结尾的有3行。我想得到一个一维数组b,要求数组b的长度为3,b[0]=2,b[1]=2,b[2]=3 ; 如何写这个函数(方法)?
我写了个,但数组越界,怎么改?
//////////////////////////////
int[] b = new int[7] {0,0,0,0,0,0,0};
int classNumber = 1;
for (int i = 0, j = 0; i < a.Length || j <= a.Length - 1; i++, j++)
{
int objNumber = 1;
while (j < a.Length)
{
if(a[j][4] != a[j + 1][4])
{
break;
}
else
objNumber++;
j++;
}
b[i] = objNumber;
classNumber++;
}
b = new int[classNumber];
Console.WriteLine("数组b的元素:");
foreach (int k in b)
{
Console.WriteLine("{0,3:d}",k);
}
现在有一个二维数组a,是7行5列:
{0,0,0,0,0},
{1,1,0,1,0},
{1,0,0,1,1},
{1,0,0,0,1},
{1,1,0,2,2},
{2,1,0,2,2},
{2,2,2,2,2}.
由于最后一列有0,1,2三种不同的值,以0结尾的有2行,以1结尾的有2行,以2结尾的有3行。我想得到一个一维数组b,要求数组b的长度为3,b[0]=2,b[1]=2,b[2]=3 ; 如何写这个函数(方法)?
我写了个,但数组越界,怎么改?
//////////////////////////////
int[] b = new int[7] {0,0,0,0,0,0,0};
int classNumber = 1;
for (int i = 0, j = 0; i < a.Length || j <= a.Length - 1; i++, j++)
{
int objNumber = 1;
while (j < a.Length)
{
if(a[j][4] != a[j + 1][4])
{
break;
}
else
objNumber++;
j++;
}
b[i] = objNumber;
classNumber++;
}
b = new int[classNumber];
Console.WriteLine("数组b的元素:");
foreach (int k in b)
{
Console.WriteLine("{0,3:d}",k);
}
用或者则不能正确判断i,j位置是否越界