嗨,我试图从阶M的矩阵中计算阶K的子矩阵的和,但是从和矩阵中得到的结果却是错误的。在我看来,逻辑是有道理的,我不知道这是什么错误。
static void Main(string[] args)
{
Console.WriteLine("Shkruani te madhesine e matrices dhe madhesine e submatrices: ");
int M;
int K;
int sum = 0;
M = int.Parse(Console.ReadLine());
K = int.Parse(Console.ReadLine());
int[] sums = new int[M - K + 1];
int[] matrix = new int[M];
Console.WriteLine("Shkruani vlerat e matrices: ");
foreach (int i in matrix)
{
matrix[i] = int.Parse(Console.ReadLine());
}
for (int i = 0; i <= M - K; i++)
{
for (int j = 0; j < K; j++)
{
sum += matrix[i + j];
}
sums[i] = sum;
sum = 0;
}
for (int i = 0; i < (M - K + 1); i++)
{
Console.WriteLine(sums[i]);
}
Console.ReadKey();
}
答案 0 :(得分:2)
代替使用
foreach (int i in matrix)
{
matrix[i] = int.Parse(Console.ReadLine());
}
使用此:
for (int i = 0; i < matrix.Length; i++)
{
matrix[i] = int.Parse(Console.ReadLine());
}
说明: 因为 For-Each 循环使用值(通过值迭代)而不是索引(可能是您想要的),而 for 循环与索引(通过索引迭代)一起使用。
希望这会有所帮助。 谢谢。