Массив в параметрах конструктора - 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 ];
}
}
}