Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.09.2010, 13:24   #1
tyurroma
 
Регистрация: 27.10.2009
Сообщений: 8
По умолчанию C#: работа с массивами

В массив заданной размерности N ввести произвольные числа. Не изменяя состояния исходного массива создать новый массив, в который поместить номера элементов исходного массива, соответствующие порядку убывания значений его элементов.

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

Код:
Console.Write("Введите размер массива: ");
            int n = int.Parse(Console.ReadLine());
 
            // Заполняем массив произвольными числами.
            var rnd = new Random();
            var array = new int[n];
            for (int i = 0; i < n; i++)
                array[i] = rnd.Next(-100, 100);
 
            // Выводим массив.
            for (int i = 0; i < n; i++)
                Console.Write("{0}\t", array[i]);
 
            Console.WriteLine();
            Console.WriteLine("=============");
 
            var arr2 = new int[n];
            for(int i=0;i<n;i++)
            {
                arr2[i] = -1;
            }
            for (int i = 0; i < n; i++)
            {
                int min = Int32.MaxValue;
                int minPos=i;
                for (int j = 0; j < n; j++)
                {
                    if (array[j]<min && !arr2.Contains(j))
                    {
                        minPos=j;
                        min=array[j];
                    }
                }
                arr2[i] = minPos;
            }
 
            // Выводим второй массив.
            for (int i = 0; i < n; i++)
            Console.Write("{0}\t", arr2[i]);
 
            Console.ReadKey();
        }
tyurroma вне форума Ответить с цитированием
Старый 19.09.2010, 14:11   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
создать новый массив
Скольки мерный? по какому критерию сортировать элементы старого массива?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.09.2010, 14:17   #3
tyurroma
 
Регистрация: 27.10.2009
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Скольки мерный? по какому критерию сортировать элементы старого массива?
пардон "задавая размерность массива равную 3, программа работает нормально...", старый массив вообще трогать не нужно

например: массив 6 25 12
новый массив 0 2 1

Последний раз редактировалось tyurroma; 19.09.2010 в 14:21.
tyurroma вне форума Ответить с цитированием
Старый 19.09.2010, 15:09   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А вот теперь я уж точно нисего не понимаю.
Под фразой
Цитата:
В массив заданной размерности N
Что имеется ввиду?
Что это одномерный массив с количеством элементов N или что это N мерный массив (куб)?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.09.2010, 15:14   #5
StudentPolitech
Форумчанин
 
Аватар для StudentPolitech
 
Регистрация: 21.11.2008
Сообщений: 400
По умолчанию

Stilet обычно в таких заданиях имеется ввиду одномерный массив, где N кол-во элементов, и надо вывести порядковые номера по убыванию
Цитата:
например: массив 6 25 12
новый массив 0 2 1
тут кстати ты по возрастанию вывел
Винда, KIS 2010, книжка по С/С++, остальное неважно........
StudentPolitech вне форума Ответить с цитированием
Старый 19.09.2010, 15:15   #6
tyurroma
 
Регистрация: 27.10.2009
Сообщений: 8
По умолчанию

может тогда перед выводом arr2 стоит дописать Array.Reverse(arr2)??
tyurroma вне форума Ответить с цитированием
Старый 19.09.2010, 15:16   #7
StudentPolitech
Форумчанин
 
Аватар для StudentPolitech
 
Регистрация: 21.11.2008
Сообщений: 400
По умолчанию

можешь так, меньше хлопот, но смотря что препод скажет, может придраться
Винда, KIS 2010, книжка по С/С++, остальное неважно........
StudentPolitech вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с массивами (С++) q3storm Помощь студентам 7 26.04.2011 09:46
Работа с массивами(Си++) GNick Помощь студентам 2 12.01.2010 00:27
Работа с массивами Besan Общие вопросы C/C++ 5 14.12.2009 15:12
работа с массивами Андрей.12 Помощь студентам 0 19.10.2009 14:18
Работа с массивами Stelix Паскаль, Turbo Pascal, PascalABC.NET 1 20.06.2008 11:37