Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/25: Рейтинг темы: голосов - 25, средняя оценка - 4.56
 Аватар для Namatrasnik
2 / 2 / 2
Регистрация: 29.10.2015
Сообщений: 269

Разместить элементы массива так, чтоб сначала шли все числа, большие данного числа, а потом – остальные

06.10.2016, 18:04. Показов 5404. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго вечера
Помогите, пожалуйста, код дописать
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//Дан массив целых чисел. Не используя нового массива, разместить элементы массива так, 
            //чтоб сначала шли все числа, большие данного числа, а потом – остальные.
            int i, n,x;
            Console.WriteLine("Введите число, которое будет минималным для массива");
            x = Int32.Parse(Console.ReadLine());
            Console.WriteLine("Введите размер массива целых чисел");
            n = Int32.Parse(Console.ReadLine());
            int[] mas = new int[n];
            for (i = 0; i < n; i++)
            {
                Console.WriteLine("Введите " + i + " элемент массива");
                mas[i] = Int32.Parse(Console.ReadLine());
            }
            Console.WriteLine("Содержимое массива после сортировки: ");
 
            for (i = 0; i < n; i++)
            {
                if (mas[i] > x)
                {
                    Console.Write("{0} ", mas[i]);
 
                }
            }
Я написал, чтобы выводились только элементы, большие указанного. А как вывести сначала большие элементы, а потом все остальные ? При этом нельзя новый массив создавать
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.10.2016, 18:04
Ответы с готовыми решениями:

Разместить элементы массива так,чтоб сначала шли все положительные числа,а потом-отрицательные, не создавая новый массив
Дан массив из n целых чисел. Не используя новый массив, нужно разместить элементы массива так, чтобы сначала шли все положительные числа, а...

Массив: Переставить числа в массиве так, чтобы сначала шли элементы, меньшие b, равные b, а потом большие b...
Дан массив a и число b. Переставить числа в массиве таким образом, чтобы сначала шли элементы, меньшие b, затем равные b, а лишь затем...

Преобразовать файл так, чтоб сначала шли отрицательные числа, а потом положительные
Создать файл целых чисел Р. Преобразовать файл таким образом, чтоб сначала шли отрицательные числа, а потом положительные .

9
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
06.10.2016, 20:14
Лучший ответ Сообщение было отмечено Namatrasnik как решение

Решение

Как-то так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
int i = 0, j = mas.Length - 1;
while (i < j)
{
    if (mas[i] > x) i++;
    else if (mas[j] > x)
    {
        var t = mas[i];
        mas[i++] = mas[j];
        mas[j] = t;
    }
    else j--;
}
Но не проверял.
1
Хитрая блондиночка $)
 Аватар для Hikari
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
06.10.2016, 20:44
А почему не через Linq?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
using System.IO;
using System;
using System.Linq;
 
class Program
{
    static void Main()
    {
        int[] a={1,2,3,4,5,6,7,8};
        int n=3;
        Console.WriteLine(String.Join(" ",a.Where(i=>i>n).Concat(a.Where(i=>i<=n))));
    }
}
Так же удобнее и эфективнее.
Или нет?
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
06.10.2016, 21:39
Цитата Сообщение от Hikari Посмотреть сообщение
А почему не через Linq?
Ну в задании было сказано, что нужно поменять элементы в самом массиве, а Linq элементы местами не меняет.

Цитата Сообщение от Hikari Посмотреть сообщение
Так же удобнее и эфективнее.
Или нет?
Удобнее, но не эффективнее.
0
 Аватар для Namatrasnik
2 / 2 / 2
Регистрация: 29.10.2015
Сообщений: 269
10.10.2016, 15:24  [ТС]
kolorotur, Что-то не выходит. Вроде в начале правильно, а потом одинаковые числа размножаются
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
10.10.2016, 17:40
Цитата Сообщение от Namatrasnik Посмотреть сообщение
Вроде в начале правильно, а потом одинаковые числа размножаются
Покажите пример массива, на котором такое наблюдается.
0
 Аватар для Namatrasnik
2 / 2 / 2
Регистрация: 29.10.2015
Сообщений: 269
12.10.2016, 16:30  [ТС]
kolorotur, Простите, вот так должно получиться ?
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
 int i, n, x;
            Console.WriteLine("Введите число, которое будет минималным для массива");
            x = Int32.Parse(Console.ReadLine());
            Console.WriteLine("Введите размер массива целых чисел");
            n = Int32.Parse(Console.ReadLine());
            int[] mas = new int[n];
            for (i = 0; i < n; i++)
            {
                Console.WriteLine("Введите " + i + " элемент массива");
                mas[i] = Int32.Parse(Console.ReadLine());
            }
            Console.WriteLine("Содержимое массива после сортировки: ");
 
            for (i = 0; i < n; i++)
            {
                if (mas[i] > x)
                {
                    Console.Write("{0} ", mas[i]);
 
                }
            }
            i = 0;
            int j = mas.Length - 1;
            while (i < j)
            {
                if (mas[i] > x) i++;
                else if (mas[j] > x)
                {
                    var t = mas[i];
                    mas[i++] = mas[j];
                    mas[j] = t;
                }
                else j--;
                Console.Write("{0} ", mas[j]);
            }
 
            Console.ReadKey();
        }
 
    }
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
12.10.2016, 20:25
Последние два цикла местами поменяйте, а то вы сначала выводите массив в консоль, а потом сортируете:

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
 int i, n, x;
            Console.WriteLine("Введите число, которое будет минималным для массива");
            x = Int32.Parse(Console.ReadLine());
            Console.WriteLine("Введите размер массива целых чисел");
            n = Int32.Parse(Console.ReadLine());
            int[] mas = new int[n];
            for (i = 0; i < n; i++)
            {
                Console.WriteLine("Введите " + i + " элемент массива");
                mas[i] = Int32.Parse(Console.ReadLine());
            }
 
            i = 0;
            int j = mas.Length - 1;
            while (i < j)
            {
                if (mas[i] > x) i++;
                else if (mas[j] > x)
                {
                    var t = mas[i];
                    mas[i++] = mas[j];
                    mas[j] = t;
                }
                else j--;
            }
 
            Console.WriteLine("Содержимое массива после сортировки: ");
            foreach (int x in mas)
               Console.Write("{0} ", x);
            Console.WriteLine();
            Console.ReadKey();
        }
 
    }
1
 Аватар для Namatrasnik
2 / 2 / 2
Регистрация: 29.10.2015
Сообщений: 269
13.10.2016, 18:22  [ТС]
kolorotur, в строке foreach x не подходит, т.к. эта переменная уже используется
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
13.10.2016, 18:36
C#
1
2
            foreach (int a in mas)
               Console.Write("{0} ", a);
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.10.2016, 18:36
Помогаю со студенческими работами здесь

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

Из массива переписать числа во второй массив так, чтобы сначала шли четные элементы, затем нули, потом нечетные элементы
Доброго времени суток! Помогите решить задание на с#: Из одномерного целочисленного массива переписать все числа во второй массив так,...

Переставить числа в массиве таким образом, чтобы сначала шли элементы меньше a[b], затем равные a[b], и потом большие
3) Дан массив a и число b. Переставить числа в массиве таким образом, чтобы сначала шли элементы меньше a, затем равные a, и потом большие...

Отсортировать массив так, чтобы сначала шли элементы из заданного диапазона, а потом остальные
Дан массив. Отсортировать его пузырьком так, чтобы вначале массива шел введенный диапазон , а после все остальные элементы. Ввод : 1 2...

Переставить элементы массива так, чтобы сначала следовали все отрицательные числа, а затем все остальные
Дан одномерный массив целых чисел. Переставить элементы в массиве таким образом, чтобы сначала следовали все отрицательные числа, а затем...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru