Изменить значения в двумерном массиве - C#
Формулировка задачи:
У меня есть двумерный(квадратный) массив double заполненный нулями и единицами, кто подскажет, как изменить значения в матрице на значения от 0 до 1, величина которых зависит от удаленности от 1?, чтобы получилось что-то вроде этого:
Решение задачи: «Изменить значения в двумерном массиве»
textual
Листинг программы
static void Main(string[] args)
{
int n;
int.TryParse(Console.ReadLine(), out n);
double[,] ar = new double[n, n];
CreateArray(ar);
ShowArray(ar);
Console.WriteLine();
ArrayTransform(ar);
ShowArray(ar);
Console.ReadKey();
}
static void CreateArray(double[,] ar)
{
for (int i = 0; i < ar.GetLength(0); i++)
{
for (int j = 2; j < ar.GetLength(1)-2; j++)
{
if (i == j)
ar[i, j] = 1;
}
}
}
static void ShowArray(double[,] ar)
{
for (int i = 0; i < ar.GetLength(0); i++)
{
for (int j = 0; j < ar.GetLength(1); j++)
{
Console.Write($"{ar[i, j]} ");
}
Console.WriteLine();
}
}
static void ArrayTransform(double[,] ar)
{
for (int i = 0; i < ar.GetLength(0); i++)
{
for (int j = 0; j < ar.GetLength(1); j++)
{
if (ar[i, j] == 1)
{
if (ar[i - 1, j - 1] != 0.9 )
{
ar[i - 1, j - 1] = 0.3;
}
if (ar[i +1, j + 1] != 1)
{
ar[i +1, j + 1] = 0.3;
}
ar[i,j]=0.9;
ar[i -1,j] = 0.6;
ar[i+1,j] = 0.6;
ar[i,j+1] = 0.6;
ar[i, j-1] = 0.6;
ar[i - 2, j] = 0.3;
ar[i + 2, j] = 0.3;
ar[i, j + 2] = 0.3;
ar[i, j - 2] = 0.3;
}
}
}
}
}