Предмет: Информатика, автор: vinylblood36

Очень срочно!
C#
Дана квадратная матрица Y(N*N). Найти с помощью пользовательского метода (без использования стандартных методов) максимальный элемент среди элементов, лежащих на главной диагонали (либо скриншотом из VS либо фоткой, пожалуйста)


KnowsUser1: язык сами угадаете как нибудь.
vinylblood36: C#

Ответы

Автор ответа: LRSM
1

Ответ:

  • public static void Main (string[] args)
  • {
  • int N = int.Parse(Console.ReadLine());
  • int[,] Y = MatrRandom(N,N,-10,10);
  • MatrPrint(Y);
  • Console.WriteLine(GetMaxFromMD(Y));
  • Console.ReadLine();
  • }
  • static int GetMaxFromMD (int[,] Matr)
  • {
  • int max = Matr [0,0];
  • for (int i = 1; i<Matr.GetLength(0);i++)
  • if (Matr[i,i]>max) max = Matr[i,i];
  • return max;
  • }
  • static int[,] MatrRandom (int m,int n,int a,int b)
  • {
  • Random rnd = new Random();
  • int [,] Matr = new int[m,n];
  • for (int i = 0; i<m; i++)
  • for (int j = 0; j<n; j++)
  • Matr[i,j] = rnd.Next(a,b);
  • return Matr;
  • }
  • static void MatrPrint (int[,] Matr)
  • {
  • for (int i = 0; i<Matr.GetLength(0); i++)
  • {
  • for (int j = 0; j<Matr.GetLength(1); j++)
  • Console.Write(string.Format($"{Matr[i,j],4} "));
  • Console.WriteLine();
  • }
  • }

Пример работы:

То что не в vs, значения никак не имеет: c# везде один.

Приложения:

KnowsUser1: А чего метод MatrPrint обобщённым не сделали? Всё равно решение украли, так крали бы до конца) Ещё и репорт кинули, хотя я свою версию добавил намного раньше) Фу таким быть)
LRSM: "решение украли"? Единственное общее - это название переменных max и Matr (и то не везде).
LRSM: Хоть и отличается почти всё, вот Вам несколько различий для наглядности, если Вы по какой-то причине сами не смогли их увидеть:
LRSM: 1) Метод MatrPrint, хоть и не обобщённый (поменять не проблема), зато печатает матрицу любого размера, необязательно квадратную, причём читабельно, в отличии от вашего.
LRSM: 2) Метод MatrRandom имеет тип возвращаемого значения (out - не лучший вариант для этого случая). Так же работает с любой матрицей, необязательно с квадратной.
LRSM: 3) Метод GetMaxFromMD (IntRectMatrMainDiagonalMax) - вот тут у Вас ошибка. Представьте, что на главную диагональ попали только отрицательные числа. И вероятность этого совсем не малая. Можете сами убедится, передав в RectIntMatrixRandom вместо 10, скажем, -1.
LRSM: А что на счёт порядка написания - не знаю, только сейчас заметил... Писал с нуля, вот, тоже так получилось... По другому и не удобно как-то выходит.
LRSM: Да и на скриншот влезло ;)
Похожие вопросы
Предмет: Русский язык, автор: seed2003
Предмет: Математика, автор: iooooooooo