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

Отсортировать массив и вывести на консоль

29.03.2013, 15:11. Показов 815. Ответов 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
using System;
class a
{
    static void Main()
    {
        int x,k,z;
        string s;
        Console.WriteLine("ENTER VALUE INDEX");
        z = Convert.ToInt32(s = Console.ReadLine());
        int[] mass1 = new int[z];
        int[] mass2 = new int[z];
        Console.WriteLine("Enter numbers");
        for (x = 0; x < z; x++)
        {
            k = Convert.ToInt32(s = Console.ReadLine());
            mass1[x] = k;
        }
        int ch = 0, nch = z - 1;
        for (x = 0; x < z; x++)
        {
            if (mass1[x] % 2 == 0)
            {
                mass2[ch] = mass1[x];
                ch++;
            }
            if (mass1[x] % 2 != 0)
            {
                mass2[nch] = mass1[x];
                nch--;
            }
            Console.WriteLine(mass2[x] + "   ");
        }
    }
}
Помогите плз, что я не так сделал.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.03.2013, 15:11
Ответы с готовыми решениями:

Вывести матрицу в консоль, отсортировать по возрастанию побочную диагональ.
Дано матрицу размера M×M, которая заполнена целыми числами в промежутке (-10, 10). необходимо: Вывести матрицу в консоль, отсортировать по...

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

Создать массив из 30 элементов. Заполнить случайными числами от 0 до 50. Вывести массив на консоль
Создать массив из 30 элементов. Заполнить случайными числами от 0 до 50. Вывести массив на консоль. Заменить все элементы, чьи значения...

2
311 / 309 / 125
Регистрация: 29.01.2013
Сообщений: 638
Записей в блоге: 1
29.03.2013, 15:27
Лучше ты сначала собери результирующий массив, а уж потом выводи.
А то ты не пойми что выводишь: нечетный элемент убираешь в конец нового массива, а выводишь очередной его элемент, который еще и не определен. 0, я так думаю...
1
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
29.03.2013, 16:50
Если нужно просто чтобы все нечетные были в конце и их порядок не сохранялся, то вот:
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
    static void Main()
    {
        int x,z;
        Console.WriteLine("ENTER VALUE INDEX");
        z = Convert.ToInt32(Console.ReadLine());
        int[] mass1 = new int[z];
        int[] mass2 = new int[z];
        Console.WriteLine("Enter numbers");
        for (x = 0; x < z; x++)
        {
            mass1[x] = Convert.ToInt32(Console.ReadLine());
        }
        int ch = 0, nch = mass1.Length - 1;
        for (x = 0; x < mass1.Length; x++)
        {
            if ((mass1[x] & 1) == 0)
            {
                mass2[ch] = mass1[x];
                ch++;
            }
            else
            {
                mass2[nch] = mass1[x];
                nch--;
            }
        }
        for (x = 0; x < ass1.Length; x++)
        {
            Console.WriteLine(mass2[x] + "   ");
        }
    }
Если прорядок должен сохранится (то есть последовательность 123456789 преобразовать не в 246897531, а в 246813579), то тут два подхода:

сделать в начале три масива, во второй копировать нечетные, а в третий - четные и потом объединить. Логично их сделать динамическими. Такой проход немного проседает по памяти, особенно когда у нас все элементы не четные. С другой стороны мы делаем лишь один проход.

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
using System;
using System.Collections.Generic;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main()
        {
            int x, z;
            Console.WriteLine("ENTER VALUE INDEX");
            z = Convert.ToInt32(Console.ReadLine());
            int[] mass1 = new int[z];
            List<int> massCH = new List<int>();
            List<int> massNCH = new List<int>();
            Console.WriteLine("Enter numbers");
            for (x = 0; x < z; x++)
            {
                mass1[x] = Convert.ToInt32(Console.ReadLine());
            }
            for (x = 0; x < mass1.Length; x++)
            {
                if ((mass1[x] & 1) == 0)
                {
                    massCH.Add(mass1[x]);
                }
                else
                {
                    massNCH.Add(mass1[x]);
                }
            }
            massCH.AddRange(massNCH);
            massNCH.Clear();
            for (x = 0; x < massCH.Count; x++)
            {
                Console.WriteLine(massCH[x]);
            }
        }
    }
}
Делать не один, а два прохода. За первый добавляем лишь четные, а за второй - оставшиеся нечетные. Экономим память, но работает в два раза медленее.

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;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main()
        {
            int x, z;
            Console.WriteLine("ENTER VALUE INDEX");
            z = Convert.ToInt32(Console.ReadLine());
            int[] mass1 = new int[z];
            int[] mass2 = new int[z];
            Console.WriteLine("Enter numbers");
            for (x = 0; x < z; x++)
            {
                mass1[x] = Convert.ToInt32(Console.ReadLine());
            }
            int i = 0;
            for (x = 0; x < mass1.Length; x++)
            {
                if ((mass1[x] & 1) == 0)
                {
                    mass2[i] = mass1[x];
                    i++;
                }
            }
            for (x = 0; x < mass1.Length; x++)
            {
                if ((mass1[x] & 1) != 0)
                {
                    mass2[i] = mass1[x];
                    i++;
                }
            }
            for (x = 0; x < mass2.Length; x++)
            {
                Console.WriteLine(mass2[x]);
            }
        }
    }
}
P.S. Возможны ошибки, не проверял.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.03.2013, 16:50
Помогаю со студенческими работами здесь

Отсортировать массив по некоторому числовому полю и вывести измененный массив на экран
Есть задание. Структура Journal хранит информацию о студентах группы: Family, Name, Curs, Group, Count (количество пропущенных часов),...

Создать линейный массив, отсортировать его в другой массив, вывести адрес всех елементов
Помогите пожалуйста с кодом ,нужно за час сдать , напишите код , только попроще Создать линейный массив, отсортировать его в другой...

Создать линейный массив, отсортировать его в другой массив, вывести адрес всех елементов
Помогите пожалуйста, за час нужно сдать , напишите код , только попроще создать линейный массив , отсортировать его в другой массив,...

Вывести на консоль массив в три способа
Напишите пожалуйста код, если не сложно. В долгу не останусь) Очень нужна помощь, скоро сдавать. Задача: Разработать программу,...

Создать массив из 5 массивов и вывести на консоль
Длина каждого подмассива генерируется случайно (не более 100 ячеек). Всё подмассивы заполнить числами. И вывести на экран содержимое. (C#...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru