总和未正确计算

时间:2019-11-20 12:48:18

标签: c#

嗨,我试图从阶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();
        }

1 个答案:

答案 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 循环与索引(通过索引迭代)一起使用。

希望这会有所帮助。 谢谢。

相关问题