Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 28.06.2018, 10:34   #1
Vavavava
Новичок
 
Регистрация: 28.06.2018
Сообщений: 3
Репутация: 10
По умолчанию Дан массив M(n,n). После строк, содержащих максимальный элемент всего исходного массива вставить строку из нулей

Вот что у меня есть:
Код:

  static void Main(string[] args)
        {
            Random ran = new Random();
            int n;
            Console.Write("Введите количество строк, столбцов: ");
            n = int.Parse(Console.ReadLine());
            int[,] table = new int[n, n * 2];
            int i, j;
            for(i=0;i<n;i++)
            {
                for(j=0;j<n;j++)
                {
                    table[i, j] = ran.Next(1, 10);
                }
            }
            Print(table, n);
            Console.WriteLine();
            for(j=0;j<n;j++)
            {
                int max = table[0, j];
                for(i=0;i<n;i++)
                {
                    if(table[i,j]>max)
                    {
                        max = table[i, j];
                        InsertStolb(ref table, n, max);
                    }
                }
            }
            Print(table, n);
            Console.ReadKey();
        }
        static void InsertStolb(ref int[,] table,int n,int num)
        {
            int i, j;
            for(j=n-2;j>=num+1;j--)
            {
                for(i=0;i<n;i++)
                {
                    table[i, j - 1] = table[i, j];
                }
            }
            for (i=0;i<n;i++)
            {
                table[i, num - 1] = 0;
            }
        }
        static void Print (int[,] table,int n)
        {
            for(int i=0;i<n;i++)
            {
                for (int j=0;j<n;j++)
                {
                    Console.Write(table[i, j] + " ");
                }
                Console.WriteLine();
            }
        }

_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 28.06.2018 в 10:49.
Vavavava вне форума   Ответить с цитированием
Старый 28.06.2018, 10:52   #2
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 23,904
Репутация: 5228
По умолчанию

Цитата:
Сообщение от Vavavava Посмотреть сообщение
Код:

int[,] table = new int[n, n * 2];

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

int[,] table = new int[n * 2, n ];

Цитата:
Сообщение от Vavavava Посмотреть сообщение
InsertStolb
а почему, собственно, InsertStolb ?!
Вы столбцы вставлять собираетесь или строки?!

блок, где Вы ищите максимальное значение и вставляете столбцы(???!!) нужно переписывать.
нужно
1) сначала найти максимальное значение
2) в цикле пройтись по строкам массива и, если в строчке есть максимальное значение - вставить пустую строчку после неё.
(это цикл лучше сделать в обратном направлении - от n к 0 )



.

Последний раз редактировалось Serge_Bliznykov; 28.06.2018 в 10:57.
Serge_Bliznykov вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан двумерный массив А, заполненный случайным образом. Вставить после столбцов, содержащих максимальный элемент массива, столбец Boys Паскаль 10 02.11.2015 15:56
Вставить после всех строк, содержащих минимальный элемент массива, строку 2, 4, 6,… (Delphi) yana1213 Помощь студентам 10 15.05.2014 21:08
В целочисленном массиве Х(N) после каждого четного числа вставить максимальный элемент массива Артём555 Visual C++ 0 18.12.2012 19:57
Вставить первую строку после строки, в которой находится первый встреченный максимальный элемент. JiLiYa Паскаль 4 03.12.2008 13:13
Найти максимальный элемент матрицы и вставить правее него столбец из нулей и ниже него строку из нулей. Romer9999 Паскаль 3 28.11.2008 12:28


09:06.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru