Выполнил задание "Преобразовать матрицу, заменив aij элемент на среднее арифметическое среди элементов, расположенных в i-ой строке и имеющих номер столбца >= j". Вот как выполнил:
int[,] m = new int[TB_3.RowCount,TB_3.ColumnCount];
for (int i = 0; i < TB_3.RowCount; i++)
{
for (int j = 0; j < TB_3.ColumnCount; j++)
{
m[i, j] = Convert.ToInt32(TB_3[j, i].Value);
}
}
for (int i = 0; i < TB_3.RowCount; i++)
{
for (int k = 0; k < TB_3.ColumnCount; k++)
{
double s = 0;
for (int j = 0; j < TB_3.ColumnCount-k; j++)
{
s += m[i, k + j];
if (j == TB_3.ColumnCount-k-1)
{
double sum = s / (j + 1);
TB_2[k, i].Value = sum;
}
TB_3-исходная матрица, TB_2-преобразованная.
Преподаватель сказал :"расчет нового значения элемента выполнен неправильно (имеется 2 ошибки)
- кроме того, зачем условие "if (j == TB_1.ColumnCount-k-1)" Проверять для каждого "j". Ведь известно, что оно выполнится только один раз. Подумайте, как совсем от него избавиться."
Помогите пожалуйста.