Массив в параметрах конструктора - C#
Формулировка задачи:
Нужно создать конструктор, а в его параметрах ссылки на два массива.
Вот он у меня какой:
a и b - размеры массивов m1 и m2, они нужны, чтобы определить размер третьего массива в конструкторе, так что пусть скромненько постоят в сторонке, не следует обращать на них внимания.
Куда важнее сейчас разобраться с m1 и m2.
Потому что, когда я создаю экземпляр класса
компилятор ругается на new, ругательства прилагаю.
Должно быть, я неправильно передаю mas1 и mas2, может, к ним чего добавить надо?
Massiv (int a, int b, int[] m1, int[] m2) { //всякая инициализация }
Massiv obj = new Massiv (a, b, 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 ]; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д