Просуммировать элементы, расположенные на диагоналях параллельных главной - C#
Формулировка задачи:
Для заданного двумерного массива размером N x N просуммировать элементы, расположенные на диагоналях параллельных главной. Результат поместить в одномерный массив.
-------------------
Помогите исправить. Выводит неправильно.
-------------------
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace acht
- {
- class programm
- {
- static void Main()
- {
- int n;
- int sum = 0, sumS = 0;
- string str;
- Console.WriteLine("Введите размерность массива");
- n = Convert.ToInt32(Console.ReadLine());
- int[,] B = new int[n, n];
- int[,] A = new int[n, n];
- Console.WriteLine("Введите элементы массива");
- for (int i = 0; i < n; i++)
- {
- for (int j = 0; j < n; j++)
- {
- str = Console.ReadLine();
- B[i, j] = Convert.ToInt32(str);
- }
- Console.WriteLine();
- }
- for (int i = 0; i < n; i++)
- {
- for (int j = 0; j < n; j++)
- {
- str = Console.ReadLine();
- A[i, j] = Convert.ToInt32(str);
- }
- Console.WriteLine();
- }
- Console.WriteLine("Массив В ");
- for (int i = 0; i < n; i++)
- {
- for (int j = 0; j < n; j++)
- Console.Write("{0,5}", B[i, j]);
- Console.WriteLine();
- }
- Console.WriteLine();
- Console.WriteLine("Массив A ");
- for (int i = 0; i < n; i++)
- {
- for (int j = 0; j < n; j++)
- Console.Write("{0,5}", A[i, j]);
- Console.WriteLine();
- }
- int[] k = new int[2 * B.GetLength(0) - 1];
- int[] l = new int[2 * A.GetLength(0) - 1];
- for (int i = 0; i < n; i++)
- {
- for (int j = 0; j <= i; j++)
- {
- sum += B[n - 1 - i + j, j];
- sumS += B[j, n - 1 - j];
- }
- k[i] = sum;
- k[k.Length - i - 1] = sumS;
- }
- for (int i = 0; i < n; i++)
- {
- for (int j = 0; j <= i; j++)
- {
- sum += A[n - 1 - i + j, j];
- sumS += A[j, n - 1 - j];
- }
- l[i] = sum;
- l[l.Length - i - 1] = sumS;
- }
- Console.WriteLine("Суммы диагоналей матрицы В: {0}", string.Join(", ", k));
- Console.WriteLine("Суммы диагоналей матрицы А: {0}", string.Join(", ", l));
- Console.Read();
- }
- }
- }
Решение задачи: «Просуммировать элементы, расположенные на диагоналях параллельных главной»
textual
Листинг программы
- int[] k = new int[2 * B.GetLength(0) - 2];
- int kl = 2 * B.GetLength(0) - 2;
- for (int i = 1; i < n; i++)
- {
- sum = 0; sumS = 0;
- for (int j = 1; j <= i; j++)
- {
- sum += B[n - 1 - i + j, j];
- sumS += B[j, n - 1 - j];
- }
- k[i - 1] = sum;
- k[kl - i] = sumS;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д