Определить количество столбцов целочисленной прямоугольной матрицы, не содержащих ни одного нулевого элемента - C#
Формулировка задачи:
Дана целочисленная прямоугольная матрица. Определить количество столбцов не содержащих ни одного нулевого элемента.
Характеристикой строки целочисленной матрицы назовем сумму ее положительных четных элементов. Переставляя строки заданной матрицы, расположить их в соответствии с ростом характеристик.
Решение задачи: «Определить количество столбцов целочисленной прямоугольной матрицы, не содержащих ни одного нулевого элемента»
textual
Листинг программы
static void Main(string[] args)
{
int n = 4;
int m = 5;
int[,] mass = new int[n, m];
int[] index = new int[n];
int[] numcol = new int[m];
int[] spe = new int[n];
int[,] mass1 = new int[n, m];
Random rnd = new Random();
for (int i = 0; i < n; i++)
{
index[i] = i;
for (int j = 0; j < m; j++)
{
numcol[j] = 0;
mass[i, j] = rnd.Next(-150,150);
if (mass[i, j] == 0) numcol[j] += 1;
}
}
Array.Copy(mass, 0, mass1, 0, mass.Length);
Console.WriteLine("Заданная матрица");
print(mass);
int numcolplus = 0;
for (int j = 0; j < m; j++)
if (numcol[j] == 0) numcolplus += 1;
Console.WriteLine("количество столбцов не содержащих ни одного нулевого элемента: {0}", numcolplus);
for (int i = 0; i < n; i++)
{
spe[i]=0;
for (int j = 0; j < m; j++)
if (mass[i, j] > 0 && mass[i, j] % 2 == 0) spe[i] += mass[i, j];
}
// Сортировка по заданному свойству
Array.Sort(spe, index);
for (int j = 0; j < n; j++)
for (int g = 0; g < n; g++)
mass[j, g] = mass1[index[j], g];
Console.WriteLine("Отсортировано по заданному свойству");
print(mass);
Console.ReadKey();
}
public static void print(int[,] mass)
{
int n = mass.GetLength(0);
int m = mass.GetLength(1);
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
Console.Write("\t{0} ", mass[i, j]);
}
Console.WriteLine();
}
}