Получить новую матрицу путём деления всех элементов данной матрицы на её наибольший по модулю элемент - C#
Формулировка задачи:
Дана действительная матрица размера nxm, в которой не все элементы равны нулю. Получить новую матрицу путём деления всех элементов данной матрицы на её наибольший по модулю элемент. При этом надо это сделать через функцию.
Когда я делаю ссылку на функцию в myArr3, компилятор ругается, что нельзяconvert type 'double' to 'double[]'
. Помогите, пожалуйста, довести программу до ума. Также в спойлере вкладываю работающий код, только там без функции.using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { double[,] myArr = new double[4, 10]; double[,] myArr2 = new double[4, 10]; double[,] myArr3 = new double[4, 10]; double Max = int.MinValue; myArr3 = r2(myArr, myArr2, Max); Console.ReadKey(); } public static double[] r2 (double[,] myArr, double[,] myArr2, double Max) { Random rnd = new Random(); Console.WriteLine("myArr: "); //заполнение исходного массива случайными значениями: for (int i = 0; i < 4; i++) { for (int j = 0; j < 10; j++) { myArr[i, j] = rnd.Next(1, 1000); Console.Write(myArr[i, j] + " "); } Console.WriteLine(""); //перевод на новую строку } for (int i = 0; i < 4; i++) for (int j = 0; j < 10; j++) if (Math.Abs(myArr[i, j]) > Max) //определение максимального числа в матрице Max = myArr[i, j]; Console.WriteLine("\nSecond Matrix: "); for (int i = 0; i < 4; i++) { for (int j = 0; j < 10; j++) { myArr2[i, j] = (myArr[i, j] / Max); Console.Write("{0:F2}", myArr2[i, j]); //F2- округление до 2х знаков после запяой Console.Write(" "); //пробел между числами в строке } Console.WriteLine(""); //перевод на новую строку } return(Max); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { double[,] myArr = new double[4, 10]; double[,] myArr2 = new double[4, 10]; Random rnd = new Random(); Console.WriteLine("myArr: "); //заполнение исходного массива случайными значениями: for (int i = 0; i < 4; i++) { for (int j = 0; j < 10; j++) { myArr[i, j] = rnd.Next(1, 1000); Console.Write(myArr[i, j] + " "); } Console.WriteLine(""); //перевод на новую строку } Double Max = int.MinValue; for (int i = 0; i < 4; i++) for (int j = 0; j < 10; j++) if (Math.Abs(myArr[i, j]) > Max) //определение максимального числа в матрице Max = myArr[i, j]; Console.WriteLine("\nSecond Matrix: "); for (int i = 0; i < 4; i++) { for (int j = 0; j < 10; j++) { myArr2[i, j] = (myArr[i, j] / Max); Console.Write("{0:F2}", myArr2[i, j]); //F2- округление до 2х знаков после запяой Console.Write(" "); //пробел между числами в строке } Console.WriteLine(""); //перевод на новую строку } Console.ReadKey(); } } }
Решение задачи: «Получить новую матрицу путём деления всех элементов данной матрицы на её наибольший по модулю элемент»
textual
Листинг программы
using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { double[,] myArr = new double[4, 10]; double[,] myArr2 = new double[4, 10]; double[,] myArr3 = new double[4, 10]; double Max = int.MinValue; Max = r2(myArr, myArr2, Max); Console.ReadKey(); } public static double r2(double[,] myArr, double[,] myArr2, double Max) { Random rnd = new Random(); Console.WriteLine("myArr: "); //заполнение исходного массива случайными значениями: for (int i = 0; i < 4; i++) { for (int j = 0; j < 10; j++) { myArr[i, j] = rnd.Next(1, 1000); Console.Write(myArr[i, j] + " "); } Console.WriteLine(""); //перевод на новую строку } for (int i = 0; i < 4; i++) for (int j = 0; j < 10; j++) if (Math.Abs(myArr[i, j]) > Max) //определение максимального числа в матрице Max = myArr[i, j]; Console.WriteLine("\nSecond Matrix: "); for (int i = 0; i < 4; i++) { for (int j = 0; j < 10; j++) { myArr2[i, j] = (myArr[i, j] / Max); Console.Write("{0:F2}", myArr2[i, j]); //F2- округление до 2х знаков после запяой Console.Write(" "); //пробел между числами в строке } Console.WriteLine(""); //перевод на новую строку } return (Max); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д