Просуммировать элементы, расположенные на диагоналях параллельных главной - C#

Узнай цену своей работы

Формулировка задачи:

Для заданного двумерного массива размером N x N просуммировать элементы, расположенные на диагоналях параллельных главной. Результат поместить в одномерный массив. ------------------- Помогите исправить. Выводит неправильно. -------------------
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace acht
  6. {
  7. class programm
  8. {
  9. static void Main()
  10. {
  11. int n;
  12. int sum = 0, sumS = 0;
  13. string str;
  14. Console.WriteLine("Введите размерность массива");
  15. n = Convert.ToInt32(Console.ReadLine());
  16. int[,] B = new int[n, n];
  17. int[,] A = new int[n, n];
  18.  
  19. Console.WriteLine("Введите элементы массива");
  20. for (int i = 0; i < n; i++)
  21. {
  22. for (int j = 0; j < n; j++)
  23. {
  24. str = Console.ReadLine();
  25. B[i, j] = Convert.ToInt32(str);
  26.  
  27. }
  28. Console.WriteLine();
  29. }
  30. for (int i = 0; i < n; i++)
  31. {
  32. for (int j = 0; j < n; j++)
  33. {
  34. str = Console.ReadLine();
  35. A[i, j] = Convert.ToInt32(str);
  36. }
  37. Console.WriteLine();
  38. }
  39. Console.WriteLine("Массив В ");
  40. for (int i = 0; i < n; i++)
  41. {
  42. for (int j = 0; j < n; j++)
  43. Console.Write("{0,5}", B[i, j]);
  44. Console.WriteLine();
  45. }
  46. Console.WriteLine();
  47. Console.WriteLine("Массив A ");
  48. for (int i = 0; i < n; i++)
  49. {
  50. for (int j = 0; j < n; j++)
  51. Console.Write("{0,5}", A[i, j]);
  52. Console.WriteLine();
  53. }
  54. int[] k = new int[2 * B.GetLength(0) - 1];
  55. int[] l = new int[2 * A.GetLength(0) - 1];
  56. for (int i = 0; i < n; i++)
  57. {
  58. for (int j = 0; j <= i; j++)
  59. {
  60. sum += B[n - 1 - i + j, j];
  61. sumS += B[j, n - 1 - j];
  62.  
  63. }
  64. k[i] = sum;
  65. k[k.Length - i - 1] = sumS;
  66. }
  67. for (int i = 0; i < n; i++)
  68. {
  69. for (int j = 0; j <= i; j++)
  70. {
  71. sum += A[n - 1 - i + j, j];
  72. sumS += A[j, n - 1 - j];
  73.  
  74. }
  75. l[i] = sum;
  76. l[l.Length - i - 1] = sumS;
  77. }
  78. Console.WriteLine("Суммы диагоналей матрицы В: {0}", string.Join(", ", k));
  79. Console.WriteLine("Суммы диагоналей матрицы А: {0}", string.Join(", ", l));
  80. Console.Read();
  81. }
  82. }
  83. }

Решение задачи: «Просуммировать элементы, расположенные на диагоналях параллельных главной»

textual
Листинг программы
  1.             int[] k = new int[2 * B.GetLength(0) - 2];
  2.             int kl = 2 * B.GetLength(0) - 2;
  3.             for (int i = 1; i < n; i++)
  4.             {
  5.                 sum = 0; sumS = 0;
  6.                 for (int j = 1; j <= i; j++)
  7.                 {
  8.                     sum += B[n - 1 - i + j, j];
  9.                     sumS += B[j, n - 1 - j];
  10.                 }
  11.                 k[i - 1] = sum;
  12.                 k[kl - i] = sumS;
  13.             }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.154 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы