Другие языки программирования и технологии

ПОМОГИТЕ С С#!!! ТУПЛЮ

В массиве размером n×n, элементы которого являются целыми числами, произвести следующие действия: удалить все столбцы, в которых четное количество нечетных элементов;
Ну лови, страдалица:

class MyMatrix
{
private int[,] Values;

public int Width { get { return Values.GetLength(0); } }
public int Height { get { return Values.GetLength(1); } }

public MyMatrix(int _Width, int _Height)
{
Values = new int[_Width, _Height];
}

public void RandomFill(int _Min, int _Max)
{
Random rnd = new Random(DateTime.Now.Millisecond);
for (int i = 0; i < Width; i++)
for (int j = 0; j < Height; j++)
Values[i, j] = rnd.Next(_Min, _Max);
}

public void Print()
{
for (int i = 0; i < Height; i++)
{
for (int j = 0; j < Width; j++)
Console.Write("{0} ", Values[j, i]);
Console.WriteLine();
}
}

private int OddCount(int _Col)
{
int Result = 0;
for (int i = 0; i < Height; i++)
Result += Values[_Col, i] & 1;
return Result;
}

private void RemoveColumn(int _Col)
{
for (int i = _Col; i < Width - 1; i++)
for (int j = 0; j < Height; j++)
Values[i, j] = Values[i + 1, j];
int[,] NewArray = new int[Width - 1, Height];
for (int i = 0; i < Width - 1; i++)
for (int j = 0; j < Height; j++)
NewArray[i, j] = Values[i, j];
Values = NewArray;
}

public void DoJob()
{
int i = 0;
while (i < Width)
if ((OddCount(i) & 1) == 0)
RemoveColumn(i);
else
i++;
}
}

class Program
{
const int n = 10;
static void Main(string[] args)
{
MyMatrix a = new MyMatrix(n, n);
a.RandomFill(1, 10);
Console.WriteLine("Source matrix:");
a.Print();
a.DoJob();
Console.WriteLine("Processed matrix:");
a.Print();
Console.ReadKey();
}
}

Как все это счастье работает, будешь объяснять сама...
Максат Эшбаев
Максат Эшбаев
93 673
Лучший ответ