Массив 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();
}
}