Массив в параметрах конструктора - C#

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

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

Нужно создать конструктор, а в его параметрах ссылки на два массива. Вот он у меня какой:
Massiv (int a, int b, int[] m1, int[] m2)
        {
                //всякая инициализация
        }
a и b - размеры массивов m1 и m2, они нужны, чтобы определить размер третьего массива в конструкторе, так что пусть скромненько постоят в сторонке, не следует обращать на них внимания. Куда важнее сейчас разобраться с m1 и m2. Потому что, когда я создаю экземпляр класса
Massiv obj = new Massiv (a, b, mas1, mas2);
компилятор ругается на new, ругательства прилагаю. Должно быть, я неправильно передаю mas1 и mas2, может, к ним чего добавить надо?
using System;
 
namespace L3D1
{
    class Massiv
    {
        static int razmer;
        public int[] mas;
        public readonly int min, max;
        public void Vivod (int[] m)
        {
            foreach (int j in m)
                Console.WriteLine (m [j]);
        }
        /*void MinMax (int [] m)
        {
            for (int j = 0; j<m.Length; j++)
                for (int k = 0; j<k.Length; k++)
                {
                    min = m [j] < m [k] ? m [j] : m [k];
                    max = m [j] > m [k] ? m [j] : m [k];
                }*/
        Massiv (int a, int b, int[] m1, int[] m2)
        {
            razmer = a > b ? a : b;
            mas = new int[razmer];
            foreach (int j in mas)
                mas [j] = m1 [j] + m2 [j];
            //int mn, mx;
            for (int j = 0; j<mas.Length; j++)
                for (int k = 0; k<mas.Length; k++)
                {
                    min = mas [j] < mas [k] ? mas [j] : mas [k];
                    max = mas [j] > mas [k] ? mas [j] : mas [k];
                    //mn = m [j] < m [k] ? m [j] : m [k];
                    //mx = m [j] > m [k] ? m [j] : m [k];
                }
            //min = mn;
            //max = mx;
        }
    }
    class Programma
    {
        public static void Main (string[] args)
        {
            Console.Write ("Размер первого массива: ");
            int a = int.Parse (Console.ReadLine ());
            Console.Write ("Размер второго массива: ");
            int b = int.Parse (Console.ReadLine ());
            Console.WriteLine ("Элементы первого массива:");
            int[] mas1 = new int[a];
            foreach (int j in mas1)
                mas1 [j] = int.Parse (Console.ReadLine ());
            Console.WriteLine ("Элементы второго массива:");
            int[] mas2 = new int[b];
            foreach (int j in mas2)
                mas2 [j] = int.Parse (Console.ReadLine ());
            Console.WriteLine ("Результат:");
            Massiv obj = new Massiv (a, b, mas1, mas2);
            obj.Vivod(obj.mas);
            foreach (int j in obj.mas)
                Console.WriteLine (obj.mas [j]);
            Console.Write ("Наименьший элемент: " + obj.min + "\nНаибольший элемент: " + obj.max);
        }
    }
}

Решение задачи: «Массив в параметрах конструктора»

textual
Листинг программы
using System;
 
public class Massiv {
 
    public int[] newMas { get; private set; }
 
    public Massiv( int[] m1, int[] m2 ) {
        if( m1.Length > m2.Length ) { 
            newMas = ( int[] ) Array.CreateInstance( typeof( int ), m1.Length );
            for( int i = 0; i < m2.Length; i++ )
                newMas[ i ] = m1[ i ] + m2[ i ];
        } else {
            newMas = ( int[] ) Array.CreateInstance( typeof( int ), m2.Length );
            for( int i = 0; i < m1.Length; i++ )
                newMas[ i ] = m1[ i ] + m2[ i ];
        }
    }
 
}

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


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

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

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