Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
 Аватар для Doomov
1056 / 335 / 119
Регистрация: 28.11.2020
Сообщений: 1,066

Ступенчатый массив (коллекция) привести к прямоугольной (квадратной)

27.09.2022, 06:47. Показов 738. Ответов 3

Студворк — интернет-сервис помощи студентам
Прошу помочь советом. Есть задача: при добавление в коллекцию элементов (коллекции) нужно привести к одному количеству элементов в каждой (под)коллекции. Максимальный из существующих при добавление (в данном примере arr3.Count() = 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
    var myArr = new List<List<double>>();
 
    var arr1 = new List<double> { 1, 2, 4 };
    var arr2 = new List<double> { 11, 12, 13, 14 };
    var arr3 = new List<double> { 21, 22, 23, 24, 25 };
 
    var arrCountMax = new List<int>() { arr1.Count(), arr2.Count(), arr3.Count() };
    var arrMax = arrCountMax.Max (x => x);
 
    if ( arr1.Count () < arrMax)
    {
        for (int i = 0; i < arrMax - arr1.Count () + 1; i++)
            arr1.Add (0);
    }
 
    if (arr2.Count () < arrMax)
    {
        for (int i = 0; i < arrMax - arr2.Count () + 1; i++)
            arr2.Add (0);
    }
    if (arr3.Count () < arrMax)
    {
        for (int i = 0; i < arrMax - arr3.Count () + 1; i++)
            arr3.Add (0);
    }
 
    myArr.Add (arr1);
    myArr.Add (arr2);
    myArr.Add (arr3);
Вопрос: как проще сделать через for или foreach проверку условия if для каждой коллекции при добавление 0 (при проверки условия), если количество меньше максимального.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.09.2022, 06:47
Ответы с готовыми решениями:

По квадратной матрице создать ступенчатый массив, содержащий 4 строки. Каждая строки создаётся по своему условию
Дан двумерный массив размером N*N, заполненный целыми числами. Сформировать ступенчатый массив, содержащий 4 строки, состоящие: а)...

Привести матрицу в ступенчатый вид
Помогите, пожалуйста!! Надо написать программу который будет приводить матрицу в ступенчатый вид. Можно взять определенного размера,...

Привести матрицу к квадратной по меньшему размеру
Доброго времени суток, помогите пожалуйста, было дано задание, а с программированием совсем беда, даже идей нет как это реализовать. ...

3
2393 / 1920 / 763
Регистрация: 27.07.2012
Сообщений: 5,561
27.09.2022, 08:29
Лучший ответ Сообщение было отмечено Doomov как решение

Решение

Цитата Сообщение от Doomov Посмотреть сообщение
как проще сделать через for или foreach проверку условия if для каждой коллекции при добавление 0 (при проверки условия), если количество меньше максимального
В вопросе и ответ. Чтобы сделать это через foreach, надо сначала положить списки в коллекцию, а потом уже производить с ними действия:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    var myArr = new List<List<double>>();
 
    var arr1 = new List<double> { 1, 2, 4 };
    var arr2 = new List<double> { 11, 12, 13, 14 };
    var arr3 = new List<double> { 21, 22, 23, 24, 25 };
 
    myArr.Add (arr1);
    myArr.Add (arr2);
    myArr.Add (arr3);
 
    var arrMax = myArr.Max (x => x.Count);
 
    foreach (var arr in myArr)
    { 
        if ( arr.Count < arrMax)
        {
            for (int i = 0; i < arrMax - arr.Count + 1; i++)
                arr.Add (0);
        }
     }
1
 Аватар для Doomov
1056 / 335 / 119
Регистрация: 28.11.2020
Сообщений: 1,066
27.09.2022, 12:28  [ТС]
Вместо строки 18:
C#
1
       for (int i = 0; i < arrMax - arr.Count + 1; i++)
Надо не + 1, а + i
C#
1
       for (int i = 0; i < arrMax - arr.Count + i; i++)
А вообще: Спасибо
Если добавить еще одну-две коллекции, то вылезет ошибка в 1-й коллекции. Будет не максимум, а на 1 меньше
0
2393 / 1920 / 763
Регистрация: 27.07.2012
Сообщений: 5,561
27.09.2022, 12:30
Цитата Сообщение от Doomov Посмотреть сообщение
Надо не + 1, а + i
Стоп. Это всё не верно. Надо так:
C#
1
2
3
int count = arr.Count;
for (int i = 0; i < arrMax - count; i++)
...
т.к. arr.Count изменяется после каждого прохода цикла.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.09.2022, 12:30
Помогаю со студенческими работами здесь

Дан двумерный массив размером N*N, заполненный целыми числами. Сформировать ступенчатый массив, содержащий 4 строки
И снова привет ,форумчане ! Учусь на первом курсе , сначала вроде бы всё понимал , а потом как снежный ком начались накапливаться...

Дан двумерный массив размером N*N, заполненный целыми числами. Сформировать ступенчатый массив, содержащий 4 строки
Дан двумерный массив размером N*N, заполненный целыми числами. Сформировать ступенчатый массив, содержащий 4 строки, состоящие: а)...

Дан двумерный ступенчатый string массив из которого надо записать уникальные значения в один одномерный массив
пример: List&lt;List&lt;string&gt;&gt; accounts = new List&lt;List&lt;string&gt;&gt;(); accounts.Add(new List&lt;string&gt; { &quot;Andrew&quot;,...

Двумерный массив преобразовать в ступенчатый массив. DataGridView
Здравствуйте, помогите разобраться. Стоит такая задача, создать двумерный массив и вывести его в DataGridView. Следующая задача, двумерный...

Ступенчатый массив
Здравствуйте. Подскажите можно ли сделать ступенчатый массив из ступенчатых массивов?


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера 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