Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
1 / 1 / 1
Регистрация: 11.02.2013
Сообщений: 83

Определить: количество строк матрицы, содержащих хотя бы один нулевой элемент

16.02.2013, 00:46. Показов 3004. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана целочисленная прямоугольная матрица. Определить: • количество строк, содержащих хотя бы один нулевой элемент; • номер столбца, в котором находится самая длинная серия одинаковых элементов.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.02.2013, 00:46
Ответы с готовыми решениями:

Определить количество строк матрицы, содержащих хотя бы один нулевой элемент
Дана целочисленная квадратная матрица. Определить: - количество строк, содержащих хотя бы один нулевой элемент; - номер столбца, в...

Массив: Определить количество строк матрицы, содержащих хотя бы один нулевой элемент
Дана целочисленная прямоугольная матрица. Определить: 1) количество строк, содержащих хотя бы один нулевой элемент; 2) номер...

Определить номера строк матрицы, содержащих хотя бы один нулевой элемент
Уважаемые программисты,помогите,пожалуйста сделать перегрузку методов к такому заданию: Дана целочисленная прямоугольная матрица....

4
 Аватар для VoltDeMar
18 / 18 / 4
Регистрация: 05.06.2012
Сообщений: 1,020
16.02.2013, 01:00
Если записать в двух разных циклах то можно сделать так: в одном задать переменную, и плюсовать ее если при прохождении строки попадается значение 0 и переходить к следующей строке;
во втором задать две переменные( x,y ), проходим первую строку, если значение массива = 0, то y=y+1, когда прошли всю строку if (y > x) x=y, потом y обнуляем и проверяем следующую, номер столбца сохранять таким же образом.
1
 Аватар для Zuzik
298 / 256 / 57
Регистрация: 11.06.2012
Сообщений: 1,557
16.02.2013, 02:05
Вот. Вопрос для знающих - второе задание как то более красиво с использованием линк можно сделать?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
private static void Main()
        {
            var matrix = new int[][]
                             {
                                 new int[] {1, 0, 3, 3, 5}, 
                                 new int[] {1, 3, 3, 3, 5}, 
                                 new int[] {1, 2, 0, 4, 0}, 
                                 new int[] {1, 1, 1, 1, 0}
                             };
            var countzeroel = matrix
                // Вызываем оператор подсчитывающий количество элементов подходящих под некое условие
                // в нашем случае с хоть одним нулевым элементом
                .Count(
                    // Условие пишем в виде лямбда выражения
                x => x.
                         // Тут пишем оператор который показывает есть ли  хоть один элемент подходящий под некое условие 
                         // в нашем случае равный нулю
                         Any(y => y == 0));
            var maxseq = matrix
                // Вызываем оператор преобразования коллекции
                .Select(x => 
                    // группируем одинаковые элементы
                    x.GroupBy((y) => y)
                    // преобразовываем коллекцию таким образом чтобы она содержала 
                    // список размеров групп
                    .Select(z=>z.Count())
                    // находим максимальный размер
                    .Max())
                 // Проделав такие операции с каждой одномерной матрицей
                 // получаем список максимальных групп в этих одномерных матрицах
                // и преобразуем полученную вещь в List<int> для удобства дальнейшей работы
                 .ToList();
            // Находим максимальную группу
            var maxel = maxseq.Max();
            // Создаем список для максимальных групп - вдруг их окажется несколько
            var maxindexes = new List<int>();
            // просматриваем полученную нами ранее коллекцию и находим индексы максимальных элементов
            for (int i = 0; i < maxseq.Count(); i++)
            {
                // если текущий элемент максимальный - добавляем его индекс в список
                if (maxseq[i]==maxel)
                {
                    // i+1 так как элементы нумеруются от нуля
                    maxindexes.Add(i+1);
                }
            }
            // выводим полученные результаты
            Console.WriteLine("Хотя бы один нулевой элемент "+countzeroel+" строках");
            Console.WriteLine(" Строки с максимальной последовательностью элементов");
            // тут результаты выводим в цикле потому как их может быть несколько
            foreach (var maxindex in maxindexes)
            {
                Console.WriteLine(maxindex);
            }
 
            Console.ReadLine();
        }
1
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
16.02.2013, 03:01
Zuzik, никак. Это задание через линк будет только через задницу получаться (если офк вводить нормальные массивы, а не массив массивов)

Добавлено через 5 минут
Ну а нормально как-то так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication26
{
    class Program
    {
        static void Main(string[] args)
        {
            int[,] matrix =
                {
                    {1, 0, 3, 3, 5},
                    {1, 3, 3, 3, 5},
                    {1, 2, 0, 4, 0},
                    {1, 1, 1, 1, 0}
                };
            foreach (int i in GetRowsWithZero(matrix))
                Console.WriteLine(i);
            Console.ReadKey();
        }
 
        private static IEnumerable<int> GetRowsWithZero(int[,] matrix)
        {
            for (int i = 0; i < matrix.GetLength(0); i++)
                if (RowContainsZero(matrix, i))
                    yield return i;
        }
 
        private static bool RowContainsZero(int[,] matrix, int row)
        {
            for (int i = 0; i < matrix.GetLength(1); i++)
                if (matrix[row, i] == 0)
                    return true;
            return false;
        }
    }
}
2
1 / 1 / 1
Регистрация: 11.02.2013
Сообщений: 83
16.02.2013, 12:36  [ТС]
а как матрицу рондомно задать чтоб не вводить её
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.02.2013, 12:36
Помогаю со студенческими работами здесь

Многомерные массивы, определить количество строк, содержащих хотя бы один нулевой элемент
Дана целочисленная прямоугольная матрица. Определить количество строк, содержащих хотя бы один нулевой элемент; номер столбца, в которой...

Определить количество столбцов матрицы, содержащих хотя бы один нулевой элемент
Желательно сделать приблизительно как в примере( без всяких замудренных штук =) ) , то что пытался сделать я -&gt; . Заранее спасибо!

Определить количество столбцов матрицы, содержащих хотя бы один нулевой элемент
Всем привет. В c# нуб, сильно не ругайте... Дана целочисленная прямоугольная матрица. Определить: -количество столбцов, содержащих хотя...

Определить количество строк,содержащих хотя бы один нулевой элемент в прямоугольной матрице(методами)
Дана целочисленная прямоугольная матрица. Определить: • количество строк, содержащих хотя бы один нулевой элемент; • номер столбца, в...

Определить количество столбцов, содержащих хотя бы один нулевой элемент
Дана целочисленная прямоугольная матрица. Определить:- количество столбцов, содержащих хотя бы один нулевой элемент;- номер строки, в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru