Получить новую матрицу путём деления всех элементов данной матрицы на её наибольший по модулю элемент - 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);
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д