В заданном двумерном массиве размером N×N поменять местами элементы - C#

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

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

В заданном двумерном массиве размером N×N поменять местами элементы, расположенные в верхней и нижней частях массива, между главной и побочной диагоналями за исключением элементов, расположенных на этих диагоналях.
Листинг программы
  1. Console.WriteLine("Введите размерность: ");
  2. int N = Convert.ToInt32(Console.ReadLine());
  3. int[,] mass = new int[N, N];
  4. Random random = new Random();
  5. Console.WriteLine("Исходная мартица");
  6. Console.WriteLine();
  7. for (int i = 0; i < N; i++)
  8. {
  9. for (int j = 0; j < N; j++)
  10. {
  11. mass[i, j] = random.Next(0, 100);
  12. Console.Write(mass[i, j] + "\t");
  13. }
  14. Console.WriteLine();
  15. }
  16. Console.WriteLine();
  17. Console.WriteLine();
  18. int[,] rez = new int[N, N];
  19. Console.WriteLine("Результирующая мартица");
  20. Console.WriteLine();
  21. for (int i = 0; i < N; i++)
  22. {
  23. for (int j = 0; j < N; j++)
  24. {
  25. rez[i, j] = mass[N - j - 1 , N - i - 1];
  26. Console.Write(rez[i, j] + "\t");
  27. }
  28. Console.WriteLine();
  29. }
  30. Console.ReadLine();
Можно таким кодом, не получается придумать алгоритм вот такого типа (rez[i, j] = mass[N - j - 1 , N - i - 1]; )
rez[i, j] = mass[N - j - 1 , N - i - 1] . Этот алгоритм позволяет поменять местами симметричные относительно побочной диагонали элементы местами
Мб поможет кто?

Решение задачи: «В заданном двумерном массиве размером N×N поменять местами элементы»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Diagnostics;
  4. using System.IO;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Drawing;
  8. using System.Text.RegularExpressions;
  9.  
  10. namespace ConsoleApplication5
  11. {
  12.     class Program
  13.     {
  14.         static Random rnd = new Random();
  15.         static void Main(string[] args)
  16.         {
  17.             int n = 5;
  18.             int[,] array = new int[5, 5];
  19.             Console.WriteLine("before:");
  20.             for(int i = 0; i < array.GetLength(0); i++)
  21.             {
  22.                 for(int j = 0; j < array.GetLength(1); j++)
  23.                 {
  24.                     Console.Write((array[i,j] = rnd.Next(1,10)) + " ");
  25.                 }
  26.                 Console.WriteLine();
  27.             }
  28.             for(int i = 0; i < array.GetLength(0); i++)
  29.             {
  30.                 for(int j = i+1; j < array.GetLength(1) - i - 1; j++)
  31.                 {
  32.                     int tmp = array[i, j];
  33.                     array[i, j] = array[array.GetLength(0) - i - 1, j];
  34.                     array[array.GetLength(0) - i - 1, j] = tmp;
  35.                 }
  36.             }
  37.             Console.WriteLine("after:");
  38.             for(int i = 0; i < array.GetLength(0); i++)
  39.             {
  40.                 for(int j = 0; j < array.GetLength(1); j++)
  41.                 {
  42.                     Console.Write(array[i, j]+ " ");
  43.                 }
  44.                 Console.WriteLine();
  45.             }
  46.             Console.ReadKey(true);
  47.         }
  48.     }
  49. }

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


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

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

10   голосов , оценка 3.9 из 5

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

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

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