0 / 0 / 0
Регистрация: 04.11.2016
Сообщений: 10
1

Все положительные элементы, стоящие перед минимальным положительным элементом, переслать в «хвост» массива

12.11.2017, 13:20. Показов 1708. Ответов 8
Метки нет (Все метки)

В массиве A=(a1, а2, ..., аn) все положительные элементы, стоящие перед минимальным положительным элементом, переслать в «хвост» массива.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.11.2017, 13:20
Ответы с готовыми решениями:

В массиве все положительные элементы, стоящие перед минимальным положительным элементом, переслать в хвост массива
В массиве A=(a1, а2, ..., аn) все положительные элементы, стоящие перед минимальным положительным...

В массиве все положительные элементы, стоящие перед минимальным положительным элементом, переслать в хвост массива
В массиве A=( a1, а2, ..., аn) все положительные элементы, стоящие перед минимальным положительным...

В массиве все положительные элементы, стоящие перед минимальным положительным, переслать в "хвост"
в массиве (одномерном) все положительные элементы, стоящие перед минимальным положительным...

В одномерном массиве (в массиве n элементов) удалить все элементы стоящие между минимальным положительным и максимальным отрицательным элементом
Добрый вечер!) Помогите с задачкой: В одномерном массиве (в массиве n элементов) удалить все...

8
74 / 74 / 96
Регистрация: 29.09.2012
Сообщений: 232
13.11.2017, 16:08 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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int [] A = {2,3,4,5,-1,0,-2,6,3,1,4,5,-2,0,2 };
            var result = new List<int>();
            int min = int.MaxValue;
            int index = 0;
            for (int i = 0; i < A.Length; i++) 
            {
                if (A[i] < min && A[i] > 0) 
                {
                    index = i;
                    min = A[i];                  
                }              
            }           
            for (int i = index; i < A.Length; i++) 
            {
                result.Add(A[i]);
            }
            for (int i = 0; i < index; i++)
            {
                if (A[i] > 0)
                {
                    result.Add(A[i]);
                }
            }                    
            foreach (var r in result) 
            {
                Console.Write(r);
            }
            Console.ReadKey();
        }
    }
}
0
0 / 0 / 0
Регистрация: 04.11.2016
Сообщений: 10
14.11.2017, 10:35  [ТС] 3
массив должен быть рандомным
0
74 / 74 / 96
Регистрация: 29.09.2012
Сообщений: 232
14.11.2017, 11:48 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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
using System;
using System.Collections.Generic;
using System.Linq;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Введите размер массива");
            int n = Convert.ToInt16(Console.ReadLine());
            int[] A = new int[n];
            Random rand = new Random();
            for (int i = 0; i < A.Length; i++) 
            {
                A[i] = rand.Next(-100, 100);
                Console.Write(A[i] + " ");
            }
            var result = new List<int>();
            int min = int.MaxValue;
            int index = 0;
            for (int i = 0; i < A.Length; i++)
            {
                if (A[i] < min && A[i] > 0)
                {
                    index = i;
                    min = A[i];
                }
            }
            for (int i = index; i < A.Length; i++)
            {
                result.Add(A[i]);
            }
            for (int i = 0; i < index; i++)
            {
                if (A[i] > 0)
                {
                    result.Add(A[i]);
                }
            }
            Console.WriteLine();
            foreach (var r in result)
            {
                Console.Write(r+" ");
            }
            Console.ReadKey();
        }
    }
}
0
0 / 0 / 0
Регистрация: 04.11.2016
Сообщений: 10
19.11.2017, 22:52  [ТС] 5
программа не должна удалять повторяющиеся элементы массива
и переставляет не по заданию
из массива
-2 -44 -37 29 -44 88 68 -37 -57 -27
должен был получиться массив
-2 -44 -37 29 -44 88 68 -37 -57 -27
т.к. 29 является наименьшим положительным элементом, а перед ним нет никаких других положительных
Миниатюры
Все положительные элементы, стоящие перед минимальным положительным элементом, переслать в «хвост» массива  
0
3440 / 2449 / 1168
Регистрация: 14.08.2016
Сообщений: 8,138
19.11.2017, 23:36 6
как поступать если минимальных положительных несколько?перед которым из них "подмести"?
0
0 / 0 / 0
Регистрация: 04.11.2016
Сообщений: 10
22.11.2017, 18:32  [ТС] 7
перед самым левым
0
0 / 0 / 0
Регистрация: 04.11.2016
Сообщений: 10
28.11.2017, 08:49  [ТС] 8
Diamante, перед самым левым
0
11 / 8 / 5
Регистрация: 27.01.2014
Сообщений: 17
28.11.2017, 10:52 9
В коде Andrey_sava не корректная реализация алгоритма, теряются все положительные элементы которые идут перед минимальным.
Немного исправил.

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
private static int[] Algoritm(int[] array)
        {
            //Поиск минимального положительного элемента
            int indexMin = 0;
            int min = Int32.MaxValue;
            for (int i = 1; i < array.Length; i++)
            {
                if (array[i] > 0 && array[i] < min)
                {
                    indexMin = i;
                    min = array[i];
                }
            }
 
            //Список в котором будет храниться выходная последовательность
            var result = new List<int>();
            //Вспомогательный список в котором храним все положительные элементы перед минимальным
            var temp = new List<int>();
 
            //Собираем 2 последовательности
            for (int i = 0; i < array.Length; i++)
            {
                if (i < indexMin && array[i] > 0)
                {
                    //Сохраняем положительные числа, которые находятся перед минимальным
                    temp.Add(array[i]);
                }
                else
                {
                    //Все остальные элементы идут в исходящую последовательность
                    result.Add(array[i]);
                }
            }
            //Добавляем в конец исходящей последовательности положительные числа, которые идут перед положительными
            result.AddRange(temp);
 
            return array = result.ToArray();
        }
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.11.2017, 10:52
Помогаю со студенческими работами здесь

Удалить все элементы массива, стоящие между минимальным положительным и максимальным отрицательным элементами
Помогите плиззз=((( Задание:В массиве A=(a1, а2, ..., аn) удалить все элементы, стоящие между...

В массиве b все положительные элементы заменить минимальным элементом массива a
Создать случайным образом массив a и b. В массиве b все положительные элементы заменить минимальным...

Заменить все положительные элементы массива минимальным элементом этого массива
Такие дела : задан вектор А, который содержит n элементов. Нужно заменить все положительные...

Удалить все элементы, стоящие между минимальным положительным и максимальным отрицательным элементами
В массиве A=(a1, а2, ..., аn) удалить все элементы, стоящие между минимальным положительным и...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru