Преобразовать ступенчатый массив A к одномерному булевому B по правилу - C#

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

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

всем доброго времени суток, помогите пожалуйста исправить ошибку. Задача состоит в том что надо Преобразовать ступенчатый массив A к одномерному булевому B по правилу, если строка A[i] симметрична, то B[i]=true, иначе = false;
const int n = 4;
            int[][] arr = new int[n][];
            arr[0] = new int[5] { 2, 6, 1, 5, 7 };
            arr[1] = new int[3] { 1, 2, 1};
            arr[2] = new int[4] { 2, 1, 0, 4 };
            arr[3] = new int[3] { 4, 5, 4};
 
                Console.WriteLine(" Исходный массив:");
                for (int i = 0; i < n; ++i)
                {
                    for (int j = 0; j < arr[i].Length; ++j)
                        Console.Write(" {2}", i, j, arr[i][j]);
                    Console.WriteLine();
                }
                int k = 0, t = arr.GetLength(1);
                var Bools =
                    (
                    from g in
                        from int x in arr
                        group x by (k++) / t
                    select g.SequenceEqual(g.Reverse())
                    ).ToArray();
                foreach (var b in Bools)
                    Console.WriteLine(b);
                Console.ReadKey();
ругается на
int k = 0, t = arr.GetLength(1);

Решение задачи: «Преобразовать ступенчатый массив A к одномерному булевому B по правилу»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
 
namespace Test
{
 
    class Program
    {
        static void Main(string[] args)
        {
            const int n = 4;
            int[][] arr = new int[n][];
            arr[0] = new int[5] { 2, 6, 1, 5, 7 };
            arr[1] = new int[3] { 1, 2, 1 };
            arr[2] = new int[4] { 2, 1, 0, 4 };
            arr[3] = new int[3] { 4, 5, 4 };
            bool[] b = new bool[n];
            Console.WriteLine(" Исходный массив:");
            for (int i = 0; i < n; ++i)
            {
                for (int j = 0; j < arr[i].Length; ++j)
                    Console.Write(" {2}", i, j, arr[i][j]);
                Console.WriteLine();
            }
            for (int i = 0; i < n; ++i)
            {
                if (arr[i].SequenceEqual(arr[i].Reverse()))
                {
                    b[i] = true;
                }
                else
                {
                    b[i]=false;
                }
            }
            for (int i = 0; i < n; ++i)
            {
                Console.Write(b[i].ToString() + " ");
            }
            Console.ReadLine();
        }
    }
}

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


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

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

14   голосов , оценка 4 из 5
Похожие ответы