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

Массив: Отсортировать вначале отрицательные числа по возрастанию, а затем положительные числа по убыванию...

21.10.2020, 10:25. Показов 5838. Ответов 33

Студворк — интернет-сервис помощи студентам
Заполнить одномерный массив целочисленных чисел размером в 20 элементов числами от -20 до 20. Для получения случайного числа использовать конструкцию Random rnd = new Random(); … int a = rnd.Next(-20, 20);. Вывести на экран исходный массив в одну строку. Выполнить действия над массивом: отсортировать вначале отрицательные числа по возрастанию, а затем положительные числа по убыванию и вывести результирующий массив на экран в одну строку. После завершения выполнения программы запросить у пользователя его желание повторить выполнение программы и если это желание будет положительным, то очистить экран и начать выполнение программы заново.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.10.2020, 10:25
Ответы с готовыми решениями:

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

Одномерный массив: отсортировать так, чтобы вначале шли положительные элементы, а затем - отрицательные
Помогите пожалуйста с задачей. Надо в одномерном массиве поменять элементы так, чтоб вначале шли положительные, затем нули , затем...

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

33
 Аватар для Kyra90
232 / 153 / 85
Регистрация: 06.10.2020
Сообщений: 468
21.10.2020, 13:27
Студворк — интернет-сервис помощи студентам
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
static void Main(string[] args)
        {
            do
            {
                Console.Clear();
                Console.Write("Введите размер массива :");
                int C = Convert.ToInt32(Console.ReadLine());
                int[] myArray = new int[C];
                Random rand = new Random();
                for (int x = 0; x < myArray.Length; x++)
                {
                    myArray[x] = rand.Next(-19, 20);
                    Console.WriteLine("Значение элемента массива " + x + " = " + myArray[x]);
                }
 
                Array.Sort(myArray);
                foreach (var item in myArray) Console.Write(item + " ");
                Console.WriteLine();
                Console.Write("Повторить? 0 - нет, 1 - да ");
            } while (Console.ReadLine() == "1");
 
        }
Добавлено через 1 минуту
Цитата Сообщение от Lucikk3 Посмотреть сообщение
если это желание будет положительным, то очистить экран
забыли?
1
Пора на C++?
 Аватар для TrickyBestia
370 / 264 / 99
Регистрация: 10.04.2020
Сообщений: 1,275
21.10.2020, 13:32
Лучший ответ Сообщение было отмечено Lucikk3 как решение

Решение

Цитата Сообщение от Kyra90 Посмотреть сообщение
забыли?
Да.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System;
using System.Linq;
 
static class Program
{
    static void Main()
    {
        Random random = new Random();
        do
        {
            Console.Clear();
            int[] array = Enumerable.Range(0, 20).Select(index => random.Next(-19, 20)).ToArray();
            Console.WriteLine(string.Join(' ', array));
            Console.WriteLine(string.Join(' ', array.Where(num => num <= 0).OrderBy(num => num).Concat(array.Where(num => num > 0).OrderByDescending(num => num))));
            Console.Write("Повторить? y/n ");
        } while (Console.ReadLine() == "y");
    }
}
1
1524 / 524 / 126
Регистрация: 09.01.2018
Сообщений: 1,661
21.10.2020, 15:19
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
    class Program
    {
        static void Main(string[] args)
        {
            var random = new Random();
 
            var arr = new int[20];
            for (int i = 0; i < arr.Length; i++)
            {
                arr[i] = random.Next(-20, 20);
            }
            Console.WriteLine(string.Join(", ", arr));
 
            Array.Sort(arr);
            Console.WriteLine(string.Join(", ", arr));
 
            var j = 0;
            while (arr[j] < 0) j++;
 
            Array.Sort(arr, j, arr.Length - j, new ReverseComparer());
            Console.WriteLine(string.Join(", ", arr));
 
        }
    }
 
    class ReverseComparer : IComparer
    {
        public int Compare(object x, object y)
        {
            return Comparer.Default.Compare(y, x);
        }
    }
Code
1
2
3
4, -11, 16, -6, -16, 12, 18, -13, 3, 5, -3, 15, -2, 9, -18, -8, 1, 19, 10, -9
-18, -16, -13, -11, -9, -8, -6, -3, -2, 1, 3, 4, 5, 9, 10, 12, 15, 16, 18, 19
-18, -16, -13, -11, -9, -8, -6, -3, -2, 19, 18, 16, 15, 12, 10, 9, 5, 4, 3, 1
1
1 / 1 / 0
Регистрация: 19.10.2020
Сообщений: 64
21.10.2020, 16:16  [ТС]
Вот что я попробовал сделать по условию(заданию). Но все равно что-то не так

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
using System;
namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Введите размер массива :");
            int C = Convert.ToInt32(Console.ReadLine());
            int[] myArray = new int[C];
            Random rand = new Random();
 
            for (int x = 0; x < myArray.Length; x++)
            {
                myArray[x] = rand.Next(20);
                Console.WriteLine("Значение элемента массива " + x + " = " + myArray[x]);
            }
 
            Array.Sort();
            Array.ForEach(myArray, Console.WriteLine);
            Console.ReadKey();
 
        }
        static void Main()
        {
            Random random = new Random();
            do
            {
                Console.Clear();
                int[] array = Enumerable.Range(0, 20).Select(index => random.Next(-19, 20)).ToArray();
                Console.WriteLine(string.Join(' ', array));
                Console.WriteLine(string.Join(' ', array.Where(num => num <= 0).OrderBy(num => num).Concat(array.Where(num => num > 0).OrderByDescending(num => num))));
                Console.Write("Повторить? 0 - нет, 1 - да ");
            } while (Console.ReadLine() == "1");
        }
    }
}
Добавлено через 2 минуты

Добавлено через 14 минут
escoult у меня выдает ошибки
0
1524 / 524 / 126
Регистрация: 09.01.2018
Сообщений: 1,661
21.10.2020, 16:18
Цитата Сообщение от Lucikk3 Посмотреть сообщение
escoult у меня выдает ошибки
А я тут причем? Это не мой код, мой постом выше. Будут ошибки - пишите.
0
1 / 1 / 0
Регистрация: 19.10.2020
Сообщений: 64
21.10.2020, 16:19  [ТС]
TrickyBestia Сначала Вывести на экран исходный массив в одну строку. Выполнить действия над массивом
0
 Аватар для Kyra90
232 / 153 / 85
Регистрация: 06.10.2020
Сообщений: 468
21.10.2020, 16:20
Lucikk3, Я же Вам написала рабочую версию.

Цитата Сообщение от Lucikk3 Посмотреть сообщение
static void Main(string[] args)
Цитата Сообщение от Lucikk3 Посмотреть сообщение
static void Main()
У вас 2 метода с одним именем. Избавьтесь от верхнего а нижний назовите static void Main(string[] args)
0
1 / 1 / 0
Регистрация: 19.10.2020
Сообщений: 64
21.10.2020, 16:27  [ТС]
escoult так я вам и ответил. ошибки у вас. можете как-то попроще? вывод мне нравится. Как раз Сначала Выводит на экран исходный массив в одну строку и потом Выполняет действия над массивом

Добавлено через 4 минуты
Kyra90
Это?
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
using System;
using System.Linq;
 
class Program
{
 
    static void Main(string[] args)
    {
        do
        {
            Console.Clear();
            Console.Write("Введите размер массива :");
            int C = Convert.ToInt32(Console.ReadLine());
            int[] myArray = new int[C];
            Random rand = new Random();
            for (int x = 0; x < myArray.Length; x++)
            {
                myArray[x] = rand.Next(-19, 20);
                Console.WriteLine("Значение элемента массива " + x + " = " + myArray[x]);
            }
 
            Array.Sort(myArray);
            foreach (var item in myArray) Console.Write(item + " ");
            Console.WriteLine();
            Console.Write("Повторить? 0 - нет, 1 - да ");
        } while (Console.ReadLine() == "1");
 
    }
}
Добавлено через 2 минуты
Цитата Сообщение от Lucikk3 Посмотреть сообщение
myArray[x] = rand.Next(-19, 20)
Почему от -19
0
 Аватар для Kyra90
232 / 153 / 85
Регистрация: 06.10.2020
Сообщений: 468
21.10.2020, 16:28
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
       static void Main(string[] args)
        {
            do
            {
                Console.Clear();
                int[] myArray = new int[20];
                Random rand = new Random();
                for (int x = 0; x < myArray.Length; x++)myArray[x] = rand.Next(-20, 20);
                Console.WriteLine(string.Join(", ", myArray));
 
                Array.Sort(myArray);
                Console.WriteLine(string.Join(", ", myArray));
                Console.Write("Повторить? 0 - нет, 1 - да ");
            } while (Console.ReadLine() == "1");
 
        }
0
1524 / 524 / 126
Регистрация: 09.01.2018
Сообщений: 1,661
21.10.2020, 16:29
Цитата Сообщение от Lucikk3 Посмотреть сообщение
так я вам и ответил. ошибки у вас. можете как-то попроще?
Какие ошибки? Скрин что ли дайте.
Но прежде проверьте неймспейсы:

C#
1
2
using System;
using System.Collections;
0
 Аватар для Kyra90
232 / 153 / 85
Регистрация: 06.10.2020
Сообщений: 468
21.10.2020, 16:33
Цитата Сообщение от escoult Посмотреть сообщение
class ReverseComparer : IComparer
    {
        public int Compare(object x, object y)
        {
            return Comparer.Default.Compare(y, x);
        }
    }
Скорее всего это задание для универа (или другого уч. зав.). поэтому, такой код скорее всего не примут, а еще хуже, если спросят - "А что вот этот код делает? "
0
1 / 1 / 0
Регистрация: 19.10.2020
Сообщений: 64
21.10.2020, 16:37  [ТС]
Цитата Сообщение от escoult Посмотреть сообщение
}
    }
class ReverseComparer : IComparer
    {
        public int Compare(object x, object y)
        {
            return Comparer.Default.Compare(y, x);
        }
    }
Нет в конце запроса повторить и очистить экран
0
 Аватар для Kyra90
232 / 153 / 85
Регистрация: 06.10.2020
Сообщений: 468
21.10.2020, 16:40
Цитата Сообщение от Lucikk3 Посмотреть сообщение
Нет в конце запроса повторить и очистить экран
Вот так преподу и скажи. И ни вздумай упоминать слово "интерфейс"
0
1524 / 524 / 126
Регистрация: 09.01.2018
Сообщений: 1,661
21.10.2020, 16:41
Цитата Сообщение от Kyra90 Посмотреть сообщение
Скорее всего это задание для универа (или другого уч. зав.). поэтому, такой код скорее всего не примут, а еще хуже, если спросят - "А что вот этот код делает? "
Что то у меня большие сомнения по поводу универа. Ну разве что ТС там числится и появляется раз в месяц, чтобы не забыли.

Цитата Сообщение от Lucikk3 Посмотреть сообщение
Нет в конце запроса повторить и очистить экран
В универе уже должны знать такие вещи. Сам напишет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.10.2020, 16:41
Помогаю со студенческими работами здесь

Написать рекурсивную функцию, которая вначале печатает все отрицательные числа, а затем все положительные числа
Дана последовательность ненулевых чисел, в конце которой следует 0. Написать рекурсивную функцию, которая вначале печатает все...

Отсортировать сначала отрицательные числа, затем положительные и затем ноль
Помогите, пожалуйста, составить программу сортировки массива, так, чтобы она сортировала сначала отрицательные числа, затем положительные и...

Рассортировать положительные числа по убыванию, а отрицательные по возрастанию
Дан массив из 15 чисел. Рассортировать положительные числа по убыванию, а отрицательные по возрастанию. я ваще не знаю как((

Разложить числа: положительные по возрастанию; отрицательные по убыванию
Разложить числа: положительные по возрастанию;отрицательные по убыванию. Паскаль.

Упорядочить по убыванию сначала положительные, затем нулевые, отрицательные числа массива
Дан массив М(15) действительных чисел. Упорядочить по убыванию: сначала положительные, затем нулевые, отрицательные числа.


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

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru