Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/40: Рейтинг темы: голосов - 40, средняя оценка - 4.58
2 / 2 / 0
Регистрация: 18.09.2010
Сообщений: 21
1

Создать массив с номерами элементов исходного массива, соответствующие порядку убывания элементов

18.09.2010, 15:55. Показов 7927. Ответов 7

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

Не получается реализовать вторую часть задачи с "номерами". Может кто помочь?

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
        static void Main(string[] args)
        {
            Console.WriteLine("Введите размерность");
            int[] A = new
            int[Convert.ToInt32(Console.ReadLine())];
            
             for (int i = 0; i < A.Length; i++)
            {
                int h = i;
                Console.WriteLine("Введите элемент " + (++h));
                A[i] = Convert.ToInt32(Console.ReadLine());
            }
            Console.WriteLine("\n"+"Исходный массив");
            for (int j = 0; j < A.Length; j++)
            {
                Console.WriteLine(A[j]);
                            }
            int n = A.Length;
            int max = A[0];
            int k=0;
 
            /* Меняем размер массива, чтобы добавить
            * в конец элемент А[n], который будет являться
            * маркером
            */
            Array.Resize(ref A, n + 1);
 
            while (k < n)
 
            {
                max = A[k];
                A[n] = max;
                    k++;
                   while (A[k] < max) k++;
                    }
            Console.WriteLine("Максимальный элемент массива ");
            Console.WriteLine(A[k]);
     
        }       
    }
 }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.09.2010, 15:55
Ответы с готовыми решениями:

ArrayList. Сформировать массив, состоящий и элементов исходного массива с порядковыми номерами, кратными K
Дан целочисленный массив A и целое число K. Сформировать новый массив, состоящий и элементов...

Создать массив состоящий из различных элементов исходного массива
Всем привет! Помогите с задачкой, говорят простая, но я не могу ее додумать %-) &quot;Заполнить...

Создать новый массив из различных элементов исходного массива
Написать программу на Pascal. Дан одномерный целочисленный массив, среди элементов есть...

Из элементов исходного массива создать массив не содержащий дублей
Дан одномерный целочисленный массив, среди элементов есть одинаковые. Создать массив из различных...

7
Заблокирован
19.09.2010, 00:31 2
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
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];
Array.Copy(array, arr2, n);
Array.Sort(arr2);
Array.Reverse(arr2);
 
// Выводим второй массив.
for (int i = 0; i < n; i++)
    Console.Write("{0}\t", arr2[i]);
 
Console.ReadKey();
2
CEO
Эксперт С++
2258 / 1248 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
19.09.2010, 02:38 3
NightmareZ, нини я думаю что
Цитата Сообщение от remka Посмотреть сообщение
номера элементов исходного массива, соответствующие порядку убывания значений его элементов.
следует читать как "индексы элементов исходного массива, соответствующие порядку убывания значений этих элементов"

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
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();
        }
1
2 / 2 / 0
Регистрация: 18.09.2010
Сообщений: 21
19.09.2010, 11:28  [ТС] 4
Alligieri, задавая размерность массива 3, программа работает нормально, а если большую размерность сделать, то у же ошибается и индексы не так расставляет
0
CEO
Эксперт С++
2258 / 1248 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
19.09.2010, 12:43 5
remka, я на 10 тестовал - вроде норм

Добавлено через 2 минуты
remka, аа сори сделайте Array.Reverse(arr2); перед выводом
1
2 / 2 / 0
Регистрация: 18.09.2010
Сообщений: 21
19.09.2010, 12:58  [ТС] 6
Reverse(), я так понимаю, изменяет порядок следования... поэтому, зачем это нужно? получится, что в массиве с индексами они (индексы) будут идти от меньшего в большему
0
CEO
Эксперт С++
2258 / 1248 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
19.09.2010, 13:50 7
remka, как раз наоборот - от большего к меньшему
1
CEO
Эксперт С++
2258 / 1248 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
19.09.2010, 13:56 8
вроде норм - в порядке спадания значений
Миниатюры
Создать массив с номерами элементов исходного массива, соответствующие порядку убывания элементов  
1
19.09.2010, 13:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.09.2010, 13:56
Помогаю со студенческими работами здесь

Создать новый массив из различных элементов исходного массива
дан целочисленный массив а(8), среди элементов есть одинаковые. создать массив из различных...

Создать массив из номеров нулевых элементов исходного массива
Дан массив целых чисел, в котором есть нулевые элементы. Создать массив из номеров этих элементов.

Создать массив из номеров нулевых элементов исходного массива
В целочисленной последовательности есть нулевые элементы. Создать массив из номеров этих элементов....

Создать новый массив, состоящий из элементов исходного массива, по правилу
Сформировать на рабочем листе Задание3 одномерный массив, состоящий из положительных, отрицательных...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru