1. Дан двумерный массив размером n*m, заполненный случайными числами. Найти среднее арифметическое элементов, принадлежащих первой строке, последней строке, первому столбцу и последнему столбцу.
2. Заполнить массив n*n по правилу:
Дан двумерный массив размером n*m, заполненный случайным образом. Заменить отрицательный элемент каждого столбца нулем C#
Ответы
Программа создана с использованием двух классов в разных .cs .
1) первый, неосновной класс sample:
using System;
using System.Collections.Generic;
namespace test
{
class sample
{
public static void WrongData()
{
Console.WriteLine("Введите корректные значения.");
Console.ReadLine();
}
public static bool test;
public static uint Testing(string Outgoing)
{
if(! (uint.TryParse(Outgoing, out uint OutgoingX2) && OutgoingX2 >= 1 && OutgoingX2 <= 100) )
{
WrongData();
test = false;
}
else
{
test = true;
}
var Number = OutgoingX2;
return Number;
}
}
}
2) второй, основной класс Program:
using System;
using System.Collections.Generic;
namespace test
{
class Program
{
Console.SetBufferSize(170, 90);
string NString, MString;
Console.WriteLine("Введите количество строк массива (n) ."); NString = Console.ReadLine();
sample.Testing(NString); if (sample.test == false) return;
Console.WriteLine("Введите количество столбцов массива (m) ."); MString = Console.ReadLine();
sample.Testing(MString); if (sample.test == false) return;
uint n = sample.Testing(NString), m = sample.Testing(MString);
var Array = new int[n, m];
var Randomizer = new Random();
int RandomNumber;
// заполнение массива:
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
RandomNumber = Randomizer.Next();
if (RandomNumber < 0) RandomNumber = 0;
Array[i, j] = RandomNumber;
}
}
int FirstSum = 0, SecondSum = 0, ThirdthSum = 0, FourthSum = 0;
// Среднее арифметическое для 1 строки:
for (int j = 0; j < m; j++)
{
FirstSum += Array[1, j];
}
uint FirstAverage = (uint) FirstSum / m;
// Среднее арифметическое для последней строки:
uint ms = --n;
for (int j = 0; j < m; j++)
{
SecondSum += Array[ms, j];
}
uint SecondAverage = (uint)SecondSum / m;
// Среднее арифметическое для первого столбца:
for(int i = 0; i < n; i++)
{
ThirdthSum += Array[i, 1];
}
uint ThirdAverage = (uint)ThirdthSum / n;
// Среднее арифметическое для последнего столбца:
uint ns = --m;
for(int i = 0; i < n; i++)
{
FourthSum += Array[i, ns];
}
uint FourthAverage = (uint)FourthSum / m;
Console.WriteLine($"Среднее арифм. для: 1) первой строки: {FirstAverage} ; 2) последней строки: {SecondAverage} ; 3) первого столбца: {ThirdAverage} ; 4) последнего столбца: {FourthAverage}.");
Console.ReadLine();
}
}
}