Tiết lộ đầy đủ: Đây là bài tập về nhà.C# Chỉ mục mảng ngoài giới hạn lỗi
Điều này khiến tôi phát điên. Tôi đang viết một hàm tách rời Cosine Transform và hoàn thành về cơ bản, nhưng tôi đang chạy vào một ngoại lệ IndexOutOfRange.
Mã là dưới đây:
static int[][] DiscreteCosineTransform(int[][] pIn)
{
int[][] cosP = pIn;
double SumCosP = 0;
double Cx = 0;
double Cy = 0;
Console.WriteLine("Discrete Cosine Transformed Array:");
for(int i = 0; i < 8; i++)
{
if (i == 0)
Cx = 1/Math.Sqrt(2);
else
Cx = 1;
for(int j = 0; j < 8; i++)
{
if (j == 0)
Cy = 1/Math.Sqrt(2);
else
Cy = 1;
for (int x = 0; x < 8; x++)
{
for (int y = 0; y < 8; y++)
{
SumCosP += cosP[x][y] * Math.Cos(((2 * x + 1) * i * Math.PI)/16) * Math.Cos(((2 * y + 1) * j * Math.PI)/16);
}
}
pIn[i][j] = (int)(0.25 * Cx * Cy * SumCosP);
Console.Write(" " + pIn[i][j] + " ");
}
Console.WriteLine();
}
Console.WriteLine();
return pIn;
}
đâu PIN là:
int[][] P = new int[][]
{
new int[]{10,10,10,10,10,10,10,10},
new int[]{10,20,20,20,20,20,20,10},
new int[]{10,20,30,30,30,30,20,10},
new int[]{10,20,30,40,40,30,20,10},
new int[]{10,20,30,40,40,30,20,10},
new int[]{10,20,30,30,30,30,20,10},
new int[]{10,20,20,20,20,20,20,10},
new int[]{10,10,10,10,10,10,10,10}
};
Dòng mã nào đang ném ngoại lệ? –