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

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


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

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

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