Консультация № 200851
18.05.2021, 13:35
0.00 руб.
0 0 0
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: Помогите пожалуйста у меня возникли проблемы когда ввожу размер матрицы не правильно определениет количество столбцов, не содержащих ни одного нулевого элемента.

пот код консоль c#:

using System;

class Cyberforum
{
static void Main()
{
Console.WriteLine("Нажмите 2 для случайного заполнения заполнения.");
string selection = Console.ReadLine();
switch (selection)
{
case "2":
Console.WriteLine("Введите размер матрицы");
int n = int.Parse(Console.ReadLine());
int m = int.Parse(Console.ReadLine());
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(-20, 20);
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);
break;
}
Console.ReadKey();
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();
}
}
}
}

Обсуждение

Форма ответа