
Задание 5
В
двумерном целочисленном массиве заменить
каждый элемент суммой всех его соседей
(по вертикали, горизонтали и диагонали).
Пример входа
2 7 5 6
12 6 3 1
9 4 22 5
Пример вывода
25 28 23 9
28 64 56 41
22 52 19 26
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace _4._5
{
class Program
{
static void Main(string[] args)
{
//создаем двумерный массив:
Console.Write("Задайте размерность двумерного массива x*y ");
Console.Write("\nx:");
int x = int.Parse(Console.ReadLine());
Console.Write("y:");
int y = int.Parse(Console.ReadLine());
int[,] mass = new int[x, y];
//x1 и y1 будут использоваться в качестве координат элемента:
int x1 = 0;
int y1 = 0;
// Записываем элементы в массив:
while (x1 < x)
{
while (y1 < y)
{
Console.Write("Задайте элемент с координатами {0}x{1}:", x1 + 1, y1 +1);
mass[x1, y1] = Convert.ToInt32(Console.ReadLine());
y1++;
}
y1 = 0;
x1++;
}
// Выводим заданный массив на экран:
Console.Write("Заданный массив имеет вид:\n");
x1 = 0;
y1 = 0;
while (x1 < x)
{
while (y1 < y)
{
Console.Write(mass[x1, y1] + " ");
y1++;
}
Console.Write("\n");
x1++;
y1 = 0;
}
//Строим новый массив
int[,] mass2 = new int[x, y];
for (x1 = 0; x1 < x; x1++)
{
for (y1 = 0; y1 < y; y1++)
{
mass2[x1, y1] = 0;
if (x1 - 1 >= 0)
mass2[x1, y1] += mass[x1 - 1, y1];
if (x1 + 1 < x)
mass2[x1, y1] += mass[x1 + 1, y1];
if (y1 - 1 >= 0)
mass2[x1, y1] += mass[x1, y1 - 1];
if (y1 + 1 < y)
mass2[x1, y1] += mass[x1, y1 + 1];
if (x1 - 1 >= 0 & y1 - 1 >= 0)
mass2[x1, y1] += mass[x1 - 1, y1 - 1];
if (x1 + 1 < x & y1 + 1 < y)
mass2[x1, y1] += mass[x1 + 1, y1 + 1];
if (x1 - 1 >= 0 & y1 + 1 < y)
mass2[x1, y1] += mass[x1 - 1, y1 + 1];
if (x1 + 1 < x & y1 - 1 >= 0)
mass2[x1, y1] += mass[x1 + 1, y1 - 1];
}
}
// Выводим новый массив:
Console.Write("\nНовые значения массива:\n");
x1 = 0;
y1 = 0;
while (x1 < x)
{
while (y1 < y)
{
Console.Write(mass2[x1, y1] + " ");
y1++;
}
Console.Write("\n");
x1++;
y1 = 0;
}
Console.ReadKey();
}
}
}