Удаление строк ступенчатого массива - C#
Формулировка задачи:
я вернулся, и удаляю все строки вместо тех что нужно по условию, а именно удаление всех строк, количество нечетных элементов которых равно заданному числу
static int [][]GenerateJaggedArray(out int[][]array)
{
Random randomElement = new Random();
array = new int[randomElement.Next(5, 11)][];
for (int lineNum = 0; lineNum < array.Length; lineNum++)
{
array[lineNum] = new int[array.Length];
for (int elementNum = 0; elementNum < array.Length; elementNum++)
array[lineNum][elementNum] = randomElement.Next(10, 61);
}
return array;
}
static void DeleteRowsOnTheCondition(int[][] inputArray, int number)
{
for (int lineNum = 0; lineNum < inputArray.Length; lineNum++)
{
int count = 0;
for (int elementNum = 0; elementNum < inputArray.Length; elementNum++)
if (inputArray[lineNum][elementNum] % 2 != 0)
count++;
if (count == number)
for (int lineNumRepeat = 0; lineNumRepeat < inputArray.Length; lineNumRepeat++)
for (int elementNum = 0; elementNum < inputArray.Length; elementNum++)
{
inputArray[lineNum][elementNum] = inputArray[lineNum + 1][elementNum];
inputArray[inputArray.Length - 1 - lineNumRepeat][elementNum] = 0;
}
}
}
static void task3()
{
Console.Clear();
int[][] jaggedArray = GenerateJaggedArray(out jaggedArray);
PrintJaggedArray(jaggedArray);
Console.WriteLine("заданное число:");
var number = int.Parse(Console.ReadLine());
DeleteRowsOnTheCondition(jaggedArray, number);
PrintJaggedArray(jaggedArray);
Console.ReadKey();
}for (int lineNumRepeat = 0; lineNumRepeat < inputArray.Length; lineNumRepeat++)
нужно начать с конца
for (int lineNumRepeat = inputArray.Length-1; lineNumRepeat >lineNum; lineNumRepeat--)
Решение задачи: «Удаление строк ступенчатого массива»
textual
Листинг программы
Array.Copy(inputArray[i + 1], inputArray[i], inputArray.Length);