Удаление столбцов из матрицы - C#
Формулировка задачи:
Дана матрица. Необходимо удалить из нее заданный диапазон столбцов. Вот написал функцию. Но где-то выходит за границы. Все ни как не могу понять где именно. Посмотрите пожалуйста.
static void Delete(ref int stringSize, int columnSize, ref int[,] matr) //удаление строк из матрицы
{
if (!ExistArray(matr))
{
Console.WriteLine("Массив пустой");
return;
}
Console.WriteLine("Введите с какой строки хотите удалить");
int StartDelete = CheckMyVal();
Console.WriteLine("Введите до какой строки хотите удалять");
int FinDelete = CheckMyVal();
if ((StartDelete > stringSize) || (FinDelete > stringSize))
{
Console.WriteLine("Такое удаление произвести нельзя");
return;
}
int newColumnSize = columnSize - ((FinDelete - StartDelete) + 1);
int[,] tempMatr = new int[stringSize, newColumnSize];
int t = 0;
for (int i = 0; i <= columnSize - 1; i++)
{
if ((i < StartDelete - 1) || (i > FinDelete - 1))
{
for (int j = 0; j < stringSize; j++)
tempMatr[j, t] = matr[j, i];
t++;
}
}
matr = tempMatr;
columnSize = newColumnSize;
Console.WriteLine("Удаление выполнено!");
}Решение задачи: «Удаление столбцов из матрицы»
textual
Листинг программы
int newColumnSize = columnSize - ((FinDelete - StartDelete) + 1);
int[,] tempMatr = new int[stringSize, newColumnSize];
int t = 0;
for (int i = 0; i <= columnSize - 1; i++)
{
if ((i < StartDelete - 1) || (i > FinDelete - 1))
{
for (int j = 0; j < stringSize; j++)
tempMatr[j, t] = matr[j, i];
t++;
}
}
matr = tempMatr;
columnSize = newColumnSize;