Прямоугольная матрица - C# (217757)

Узнай цену своей работы

Формулировка задачи:

Ребят помогите пожалуйста! Замаскируйте задание,так чтоб смысл остался тот же,а само оно немного отличалось! Пожалуйста!!! Задание:
using System;
 
namespace Matrix
{
 
class InpOut
{
 
public static void Fill(int[,] mass, Random r, int a, int b)
{
r = new Random();
for (int j = 0; j < mass.GetLength(1); j++)
for (int i = 0; i < mass.GetLength(0); i++)
mass[i, j] = r.Next(a, b + 1);
}
 
public static void Print(int[,] mass)
{
for (int j = 0; j < mass.GetLength(1); j++, Console.WriteLine())
for (int i = 0; i < mass.GetLength(0); i++)
Console.Write("{0,4}", mass[i, j]);
}
}

class NegativeElement
{
 
private static int NegativeCount(int[,] mass, int n)
{
int count = 0;
for (int i = 0; i < mass.GetLength(0); i++)
if (mass[i, n] < 0)
count++;
return count;
}
 
public static void ZeroSearch(int[,] mass)
{
int nc;
bool flag;
for (int j = 0; j < mass.GetLength(1); j++)
{
nc = 0;
flag = false;
for (int i = 0; i < mass.GetLength(0); i++)
{
if (mass[i, j] == 0)
{
flag = true;
nc = NegativeCount(mass, j);
break;
}
}
if (!flag)
Console.WriteLine("В строке №{0} нулевых элементов нет", j + 1);
else
Console.WriteLine("Строка №{0} содержит {1} отрицательных элементов", j + 1, nc);
}
}
}
 
class SaddlePoints
{
 
private static int MinInLine(int[,] mass, int n)
{
int min = int.MaxValue;
for (int i = 0; i < mass.GetLength(0); i++)
if (mass[i, n] < min)
min = mass[i, n];
return min;
}
 
private static int MaxInColumn(int[,] mass, int n)
{
int max = int.MinValue;
for (int j = 0; j < mass.GetLength(1); j++)
if (mass[n, j] > max)
max = mass[n, j];
return max;
}
 
public static void SearchSaddlePoints(int[,] mass)
{
int localMin;
int count = 0;
for (int j = 0; j < mass.GetLength(1); j++)
{
localMin = MinInLine(mass, j);
for (int i = 0; i < mass.GetLength(0); i++)
{
if (localMin == mass[i, j] && MaxInColumn(mass, i) == mass[i, j])
{
count++;
Console.WriteLine("Найдена седловая точка матрицы №{0}: столбец - {1}, строка - {2}", count, i + 1, j + 1);
}
}
}
if (count == 0)
Console.WriteLine("Матрица не имеет седловых точек.");
}
 
}
 
class MainClass
{
public static void Main()
{
int x, y;
int[,] matr;
Random r = new Random();
 
do
Console.Write("Введите количество столбцов матрицы: ");
while (!int.TryParse(Console.ReadLine(), out x) || x <= 0);
do
Console.Write("Введите количество строк матрицы: ");
while (!int.TryParse(Console.ReadLine(), out y) || y <= 0);
Console.WriteLine();
class MainClass
{
public static void Main()
{
int x, y;
int[,] matr;
Random r = new Random();
 
do
Console.Write("Введите количество столбцов матрицы: ");
while (!int.TryParse(Console.ReadLine(), out x) || x <= 0);
do
Console.Write("Введите количество строк матрицы: ");
while (!int.TryParse(Console.ReadLine(), out y) || y <= 0);
Console.WriteLine();
matr = new int[x, y];
InpOut.Fill(matr, r, -2, 2);
InpOut.Print(matr);
NegativeElement.ZeroSearch(matr);
Console.WriteLine();
SaddlePoints.SearchSaddlePoints(matr);
Console.ReadKey();
}
}
}

Решение задачи: «Прямоугольная матрица»

textual
Листинг программы
using System;
 
namespace Matrix{
 
class InpOut{
 
public static void Fill(int[,] mass, Random r, int a, int b){r = new Random();for (int j = 0; j < mass.GetLength(1); j++)for (int i = 0; i < mass.GetLength(0); i++)mass[i, j] = r.Next(a, b + 1);}
 
public static void Print(int[,] mass){for (int j = 0; j < mass.GetLength(1); j++, Console.WriteLine())for (int i = 0; i < mass.GetLength(0); i++)Console.Write("{0,4}", mass[i, j]);}}
  
class NegativeElement{ 
 
private static int NegativeCount(int[,] mass, int n)
{int count = 0;for (int i = 0; i < mass.GetLength(0); i++)if (mass[i, n] < 0)count++;return count;}
 
public static void ZeroSearch(int[,] mass){int nc;bool flag;for (int j = 0; j < mass.GetLength(1); j++){nc = 0;flag = false;for (int i = 0; i < mass.GetLength(0); i++){if (mass[i, j] == 0){flag = true;nc = NegativeCount(mass, j);break;}}if (!flag)Console.WriteLine("В строке №{0} нулевых элементов нет", j + 1);else Console.WriteLine("Строка №{0} содержит {1} отрицательных элементов", j + 1, nc);}}}
 
class SaddlePoints{
 
private static int MinInLine(int[,] mass, int n){int min = int.MaxValue;for (int i = 0; i < mass.GetLength(0); i++)if (mass[i, n] < min)min = mass[i, n];return min;}
 
private static int MaxInColumn(int[,] mass, int n){int max = int.MinValue;for (int j = 0; j < mass.GetLength(1); j++)if (mass[n, j] > max)max = mass[n, j];return max;}
 
public static void SearchSaddlePoints(int[,] mass)
{int localMin;int count = 0;for (int j = 0; j < mass.GetLength(1); j++){localMin = MinInLine(mass, j);for (int i = 0; i < mass.GetLength(0); i++){if (localMin == mass[i, j] && MaxInColumn(mass, i) == mass[i, j]){
count++;Console.WriteLine("Найдена седловая точка матрицы №{0}: столбец - {1}, строка - {2}", count, i + 1, j + 1);}}}if (count == 0)Console.WriteLine("Матрица не имеет седловых точек.");} }
 
class MainClass{
 
public static void Main(){int x, y;int[,] matr;Random r = new Random(); do Console.Write("Введите количество столбцов матрицы: "); while (!int.TryParse(Console.ReadLine(), out x) || x <= 0);
do Console.Write("Введите количество строк матрицы: "); while (!int.TryParse(Console.ReadLine(), out y) || y <= 0);Console.WriteLine();
class MainClass{
public static void Main(){int x, y;int[,] matr;Random r = new Random(); do Console.Write("Введите количество столбцов матрицы: ");while (!int.TryParse(Console.ReadLine(), out x) || x <= 0);do Console.Write("Введите количество строк матрицы: "); while (!int.TryParse(Console.ReadLine(), out y) || y <= 0); Console.WriteLine(); matr = new int[x, y]; InpOut.Fill(matr, r, -2, 2); InpOut.Print(matr);
NegativeElement.ZeroSearch(matr); Console.WriteLine(); SaddlePoints.SearchSaddlePoints(matr);
Console.ReadKey(); }}}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4 из 5
Похожие ответы