Упорядочить строки матрицы по возрастанию количества одинаковых элементов в каждой строке - C# (179598)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, нужна помощь. Условие: Упорядочить строки матрицы по возрастанию количества одинаковых элементов в каждой строке. Найти номер первого из столбцов не содержащих ни одного отрицательного элемента. Есть код:
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace ConsoleApplication1
  7. {
  8. class Program
  9. {
  10. static void Main(string[] args)
  11. {
  12. Console.WriteLine("Введите количество строк:"); // задаем количество строк
  13. int n = int.Parse(Console.ReadLine()); // считываем количество строк
  14. Console.WriteLine("Введите количество столбцов:"); // задаем количество столбцов
  15. int m = int.Parse(Console.ReadLine()); //считваем количество столбцов
  16. Random rnd = new Random(); // генератор случайных чисел
  17. int[,] matrix = new int[n, m]; // пустой двумерный массив размерностью n и m
  18. List<int> t = new List<int>(m);
  19. List<mylist> mlist = new List<mylist>();
  20. int kol = 0; //количество совпадающих элементов
  21. for (int i = 0; i < n; i++)
  22. {
  23. for (int j = 0; j < m; j++) // В циклее создаем нашу матрицу случайными числами от -10 до 50
  24. {
  25. matrix[i, j] = rnd.Next(-1, 4);
  26. Console.Write("{0}\t", matrix[i, j]); // и сразу ее выводим, так мы заполняем только строку
  27. }
  28. Console.WriteLine(); // новая строка матрицы
  29. }
  30. Console.WriteLine("\n==========================\n");
  31. for (int i = 0; i < n; i++)
  32. {
  33. for (int j = 0; j < m; j++) t.Add(matrix[i, j]);
  34. kol = t.Distinct().Count();
  35. mlist.Add(new mylist(kol,t.ToList()));
  36. t.Clear();
  37. }
  38. mlist = mlist.OrderBy(el => el.kol).ToList();
  39. foreach (var item in mlist)
  40. {
  41. foreach (var i in item.list)
  42. {
  43. Console.Write(i + "\t");
  44. }
  45. Console.WriteLine();
  46. }
  47. Console.WriteLine("\n==========================\n");
  48. int count = 0; // Количество элементов в стоблце
  49. for (int i = 0; i < m; i++)
  50. {
  51. for (int j = 0; j < n; j++) if (matrix[j, i] >= 0) count++;
  52. if (count == n)
  53. {
  54. Console.WriteLine("номер первого столбца, где нет отрицательных элементов {0}", ++i);
  55. break;
  56. }
  57. count = 0;
  58. }
  59. Console.ReadKey();
  60. }
  61. }
  62. class mylist
  63. {
  64. public int kol { get; set; }
  65. public List<int> list { get; set;}
  66. public mylist(int kol, List<int> list)
  67. {
  68. this.kol = kol;
  69. this.list = list;
  70. }
  71. }
  72. }
Программа упорядочивает строки не по возрастанию количества одинаковых элементов в каждой строке, а по убыванию. Помогите исправить.

Решение задачи: «Упорядочить строки матрицы по возрастанию количества одинаковых элементов в каждой строке»

textual
Листинг программы
  1. mlist = mlist.OrderByDescending(el => el.kol).ToList();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.7 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы