Удаление столбцов из матрицы - 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;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д