Получить новую матрицу путём деления всех элементов данной матрицы на её наибольший по модулю элемент - C#

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

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

Дана действительная матрица размера nxm, в которой не все элементы равны нулю. Получить новую матрицу путём деления всех элементов данной матрицы на её наибольший по модулю элемент. При этом надо это сделать через функцию.

Когда я делаю ссылку на функцию в myArr3, компилятор ругается, что нельзя

convert type 'double' to 'double[]'

. Помогите, пожалуйста, довести программу до ума. Также в спойлере вкладываю работающий код, только там без функции.
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace ConsoleApplication1
  6. {
  7. class Program
  8. {
  9. static void Main(string[] args)
  10. {
  11. double[,] myArr = new double[4, 10];
  12. double[,] myArr2 = new double[4, 10];
  13. double[,] myArr3 = new double[4, 10];
  14. double Max = int.MinValue;
  15. myArr3 = r2(myArr, myArr2, Max);
  16. Console.ReadKey();
  17. }
  18. public static double[] r2 (double[,] myArr, double[,] myArr2, double Max)
  19. {
  20. Random rnd = new Random();
  21. Console.WriteLine("myArr: ");
  22. //заполнение исходного массива случайными значениями:
  23. for (int i = 0; i < 4; i++)
  24. {
  25. for (int j = 0; j < 10; j++)
  26. {
  27. myArr[i, j] = rnd.Next(1, 1000);
  28. Console.Write(myArr[i, j] + " ");
  29. }
  30. Console.WriteLine(""); //перевод на новую строку
  31. }
  32.  
  33. for (int i = 0; i < 4; i++)
  34. for (int j = 0; j < 10; j++)
  35. if (Math.Abs(myArr[i, j]) > Max) //определение максимального числа в матрице
  36. Max = myArr[i, j];
  37. Console.WriteLine("\nSecond Matrix: ");
  38. for (int i = 0; i < 4; i++)
  39. {
  40. for (int j = 0; j < 10; j++)
  41. {
  42. myArr2[i, j] = (myArr[i, j] / Max);
  43. Console.Write("{0:F2}", myArr2[i, j]); //F2- округление до 2х знаков после запяой
  44. Console.Write(" "); //пробел между числами в строке
  45. }
  46. Console.WriteLine(""); //перевод на новую строку
  47. }
  48. return(Max);
  49. }
  50. }
  51. }
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace ConsoleApplication1
  6. {
  7. class Program
  8. {
  9. static void Main(string[] args)
  10. {
  11. double[,] myArr = new double[4, 10];
  12. double[,] myArr2 = new double[4, 10];
  13. Random rnd = new Random();
  14. Console.WriteLine("myArr: ");
  15. //заполнение исходного массива случайными значениями:
  16. for (int i = 0; i < 4; i++)
  17. {
  18. for (int j = 0; j < 10; j++)
  19. {
  20. myArr[i, j] = rnd.Next(1, 1000);
  21. Console.Write(myArr[i, j] + " ");
  22. }
  23. Console.WriteLine(""); //перевод на новую строку
  24. }
  25. Double Max = int.MinValue;
  26. for (int i = 0; i < 4; i++)
  27. for (int j = 0; j < 10; j++)
  28. if (Math.Abs(myArr[i, j]) > Max) //определение максимального числа в матрице
  29. Max = myArr[i, j];
  30. Console.WriteLine("\nSecond Matrix: ");
  31. for (int i = 0; i < 4; i++)
  32. {
  33. for (int j = 0; j < 10; j++)
  34. {
  35. myArr2[i, j] = (myArr[i, j] / Max);
  36. Console.Write("{0:F2}", myArr2[i, j]); //F2- округление до 2х знаков после запяой
  37. Console.Write(" "); //пробел между числами в строке
  38. }
  39. Console.WriteLine(""); //перевод на новую строку
  40. }
  41. Console.ReadKey();
  42. }
  43.  
  44. }
  45. }

Решение задачи: «Получить новую матрицу путём деления всех элементов данной матрицы на её наибольший по модулю элемент»

textual
Листинг программы
  1. using System.Collections.Generic;
  2. using System.Linq;
  3. using System.Text;
  4.  
  5. namespace ConsoleApplication1
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             double[,] myArr = new double[4, 10];
  12.             double[,] myArr2 = new double[4, 10];
  13.             double[,] myArr3 = new double[4, 10];
  14.             double Max = int.MinValue;
  15.  
  16.             Max = r2(myArr, myArr2, Max);
  17.             Console.ReadKey();
  18.         }
  19.         public static double  r2(double[,] myArr, double[,] myArr2, double Max)
  20.         {
  21.             Random rnd = new Random();
  22.             Console.WriteLine("myArr: ");
  23.             //заполнение исходного массива случайными значениями:
  24.             for (int i = 0; i < 4; i++)
  25.             {
  26.                 for (int j = 0; j < 10; j++)
  27.                 {
  28.                     myArr[i, j] = rnd.Next(1, 1000);
  29.                     Console.Write(myArr[i, j] + " ");
  30.                 }
  31.                 Console.WriteLine(""); //перевод на новую строку
  32.             }
  33.  
  34.  
  35.             for (int i = 0; i < 4; i++)
  36.                 for (int j = 0; j < 10; j++)
  37.                     if (Math.Abs(myArr[i, j]) > Max) //определение максимального числа в матрице
  38.                         Max = myArr[i, j];
  39.  
  40.             Console.WriteLine("\nSecond Matrix: ");
  41.             for (int i = 0; i < 4; i++)
  42.             {
  43.                 for (int j = 0; j < 10; j++)
  44.                 {
  45.                     myArr2[i, j] = (myArr[i, j] / Max);
  46.                     Console.Write("{0:F2}", myArr2[i, j]);  //F2- округление до 2х знаков после запяой
  47.                     Console.Write(" "); //пробел между числами в строке
  48.                 }
  49.                 Console.WriteLine("");  //перевод на новую строку
  50.             }
  51.             return (Max);
  52.         }
  53.  
  54.     }
  55. }

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


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

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

14   голосов , оценка 4.143 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы