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

За каждой М-ой строчкой ступенчатой матрицы вставить её дубликат

18.02.2020, 18:28. Показов 1274. Ответов 4

Студворк — интернет-сервис помощи студентам
Есть ступенчатая матрица. Не могу понять, как добавить строчку после каждой нужной, получается только перезаписывать. Также проблема с дубликатом строки. Прошу помочь)

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
public int[][] MYYY(int m)
        {
            int raz = matrix.Length / m;
 
            int[] newLine = new int[matrix.Length]; // создаем в памяти новую строку 
            int[][] newMatrix = new int[matrix.Length + raz][]; //создание матрицы с новым количеством строк
 
            Console.WriteLine("dlina " + raz);
            Console.WriteLine("new razmer " + (matrix.Length + raz));
            Console.WriteLine();
            for (int i = 0; i < matrix.Length; i++)
            {
 
                if ((i != 0) && (i % m == 0))
                {
                    newMatrix[i] = newLine;
                }
                else
                {
                    newMatrix[i] = matrix[i];
                }
            }
 
            return newMatrix;
        }
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.02.2020, 18:28
Ответы с готовыми решениями:

Работать с каждой строчкой отдельно
Всем привет Вот как пример я выбираю текстовый файл OpenFileDialog Fille = new OpenFileDialog(); if...

В разреженной матрице перед последней строчкой, вставить строчку
В разреженной матрице перед последней строчкой, вставить строчку, у которой на первой и последней позиции будет ненулевой элемент!...

Вставить новую строку ниже строчкой места нахождения ячейки с курсором
Господа подскажите, как подправить этот макрос, что бы он вставлял новую строку ниже строчкой места нахождения ячейки с курсором, переносил...

4
 Аватар для Enifan
1846 / 1188 / 501
Регистрация: 14.10.2018
Сообщений: 3,209
18.02.2020, 18:57
Цитата Сообщение от mc_fly Посмотреть сообщение
только перезаписывать
длина массива неизменяема, потому и перезаписываем
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
using System;
 
class Program
{
    static void Main()
    {
        int[][] matrix =
        {
            new int[] { 0, 1 },
            new int[] { 2, 3, 4 },
            new int[] { 5, 6, 7, 8}
        };
 
        matrix = MYYY(1);
        foreach (var arr in matrix)
        {
            foreach (var num in arr)
                Console.Write(num + " ");
            Console.WriteLine();
        }  
 
        Console.ReadKey();
 
        int[][] MYYY(int m)
        {
            int[][] newArr = new int[matrix.Length + 1][];
            for (int i = 0, j = 0; i < matrix.Length; i++, j++)
            {
                newArr[j] = matrix[i];
                if (i == m)
                    newArr[++j] = matrix[i];
            }
            return newArr;
        }
    }
}
0
0 / 0 / 0
Регистрация: 28.01.2019
Сообщений: 15
18.02.2020, 19:10  [ТС]
Как вставить за конкретной строчкой я понимаю, но как вставить за каждой 2ой например или за каждой 3ей. Например если за каждой второй, то дубликат строки вставляется за 2ой, 4ой, 6ой, 8ой и так далее строчкой.
То есть должно получиться (за каждой второй):

1 5 6 7
2 5 6 2
3 4 5 6
7 8 9 2 - исходная матрица

1 5 6 7
2 5 6 2
2 5 6 2
3 4 5 6
7 8 9 2
7 8 9 2 - измененная матрица

Дубликат строки вставился после 2ой и 4ой строчки
0
 Аватар для Enifan
1846 / 1188 / 501
Регистрация: 14.10.2018
Сообщений: 3,209
18.02.2020, 19:29
Лучший ответ Сообщение было отмечено mc_fly как решение

Решение

mc_fly,
C#
1
2
3
4
5
6
7
8
9
10
11
        int[][] MYYY(int m)
        {
            int[][] newArr = new int[matrix.Length + matrix.Length / m][];
            for (int i = 0, j = 0; i < matrix.Length; i++, j++)
            {
                newArr[j] = matrix[i];
                if ((i + 1) % m == 0)
                    newArr[++j] = matrix[i];
            }
            return newArr;
        }
1
0 / 0 / 0
Регистрация: 28.01.2019
Сообщений: 15
18.02.2020, 19:51  [ТС]
Enifan, большое спасибо)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.02.2020, 19:51
Помогаю со студенческими работами здесь

Вставить одномерный массив в двумерный первой строчкой, без потерь и удалений строк
Добрый вечер, участники форума. Недавно в универе начали изучать C#. В нём, к своему стыду, (надеюсь пока) я чайник, поэтому прошу помощи с...

За каждым элементом с заданным значением вставить его дубликат
За каждым элементом с заданным значением вставить его дубликат. Если вставка элементов невозможна,выдать об этом сообщение

Перед каждой строчкой текста, написать имя пользователя, отправившего сообщение
Привет Всем. Делаю сетевой чат, и столкнулся с проблемой:немогу сделать так, что бы перед каждной строчкой текста, было написано имя...

Как обновить значения таблицы SQL Server так называемым методом "строчкой-за-строчкой"?
Здравствуйте, прошу совета, а лучше примера использования кода для взаимодействие VB.net с таблицей базы данных SQL Server. Суть...

Вставить после каждой четной строки матрицы ее первую строку
Доброй ночи! Помогите пожалуйста исправить код. Не могу найти ошибку. Он мне первую строку копирует вообще на все строки, но правильно...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru