Массив NxN. Удалить все строки, в которых каждый элемент попадает в заданный интервал - C#

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

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

Использовал ступенчатый массив,в общем не знаю,как удалить эл-ты,знаю,что можно сдвигом,потом думал записывать эти значения в другой массив,но так и не придумал,что дальше делать...
class Program
    {
        static void setarray(out int[][] arr)
        {
            Console.Write("Введите кол-во строк n=");
            int n = Convert.ToInt32(Console.ReadLine());
            arr = new int[n][];
            for (int i = 0; i < arr.Length; i++)
            {
                Console.Write("Введите количество элементов в {0} строке: ", i);
                int j = int.Parse(Console.ReadLine());
                arr[i] = new int[j];
                for (j = 0; j < arr[i].Length; j++)
                {
                    Console.Write("arr[{0}][{1}]= ", i, j);
                    arr[i][j] = int.Parse(Console.ReadLine());
                }
            }
        }
 
        static void print(int[][] arr)
        {
            for (int i = 0; i < arr.Length; i++)
            {
                for (int j = 0; j < arr[i].Length; j++)
                {
                    Console.Write("{0} ", arr[i][j]);
                }
                Console.WriteLine();
            }
        }
 
        static void change (int[][]arr)
        {
            Console.Write("Введите a=");
            int a = Convert.ToInt32(Console.ReadLine());
            Console.Write("Введите b=");
            int b = Convert.ToInt32(Console.ReadLine());
            if (a==b)
            {
                return;
            }
 
            for (int i=0;i< arr.Length;i++)
                for (int j=0;j< arr.Length;j++)
                {
                    if (arr[i][j]>=a && arr[i][j]<=b)
                    {
                        arr[i][j] = 0;
                    }
                }
        }
 
        static void Main()
        {
            int[][] arr;
            setarray(out arr);
            print(arr);
            change(arr);
            print(arr);
 
        }
    }

Решение задачи: «Массив NxN. Удалить все строки, в которых каждый элемент попадает в заданный интервал»

textual
Листинг программы
    class Program
    {
        static int[][] Xs;
 
 
        static void setarray(out int[][] arr)
        {
            Console.Write("Введите кол-во строк n=");
            int n = Convert.ToInt32(Console.ReadLine());
            arr = new int[n][];
            for (int i = 0; i < arr.Length; i++)
            {
                Console.Write("Введите количество элементов в {0} строке: ", i);
                int j = int.Parse(Console.ReadLine());
                arr[i] = new int[j];
                for (j = 0; j < arr[i].Length; j++)
                {
                    Console.Write("arr[{0}][{1}]= ", i, j);
                    arr[i][j] = int.Parse(Console.ReadLine());
                }
            }
        }
 
        static void print(int[][] arr)
        {
            for (int i = 0; i < arr.Length; i++)
            {
                for (int j = 0; j < arr[i].Length; j++)
                {
                    Console.Write("{0} ", arr[i][j]);
                }
                Console.WriteLine();
            }
        }
 
        static void change(int[][] arr)
        {
            Console.Write("Введите a=");
            int a = Convert.ToInt32(Console.ReadLine());
            Console.Write("Введите b=");
            int b = Convert.ToInt32(Console.ReadLine());
            if (a == b)
            {
                return;
            }
 
            for (int i = 0; i < arr.Length; i++)
            {
                Array.Resize(ref Xs, i+1);
                for (int j = 0; j < arr[i].Length; j++)
                {
                    Array.Resize(ref Xs[i], j+1);
 
                    if (arr[i][j] >= a && arr[i][j] <= b)
                    {
                            Array.Resize(ref Xs[i], j - 1);
                    }
                }
            }
            for (int i = 0; i < Xs.Length; i++)
            {
                if (Xs[i].Length > 0)
                {
                    for (int j = 0; j < Xs[i].Length; j++)
                        Xs[i][j] = arr[i][j];
                }
            }
 
        }
 
        static void Main()
        {
            int[][] arr;
            setarray(out arr);
            print(arr);
            change(arr);
            print(Xs);
            Console.ReadKey();
 
        }
    }

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


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

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

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