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

В заданном одномерном массиве поменять местами соседние элементы

28.09.2017, 06:55. Показов 3928. Ответов 9

Author24 — интернет-сервис помощи студентам
В заданном одномерном массиве поменять местами соседние элементы,
стоящие на чётных местах, с элементами, стоящими на нечётных. Каждый элемент массива выбирается случайно.
пробовал так сделать но не получается подскажите как или где я допустил ошибку
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
namespace _3._1
{
    class Program
    {
        static void Main(string[] args)
        {
            int  a,i, n;
            int[] m = new int[100];
            Random rand = new Random();
            n = 11;
            Console.WriteLine("Исхдный массив");
            for (i = 1; i < n; i++)
            {
                m[i] = rand.Next(0, 100);
                Console.Write(m[i]+" ");
            }
      
            Console.WriteLine("Результат перестановки массива");
            i = 0;
            for (i = 1; i < n - 1; i++)
            {
                Console.Write(m[i] + " ");
            }
 
            if ((i > 1) && (Math.Round(i / 2) == i / 2))
 
            {
                a = m[i]; m[i] = m[i - 1]; m[i - 1] = a;
            }
            for (i = 1; i<n-1; i++)
            {
                Console.Write(m[i] + " ");
            }
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.09.2017, 06:55
Ответы с готовыми решениями:

Поменять местами соседние элементы в одномерном массиве
Доброго времени суток, помогите пожалуйста В заданном одномерном массиве поменять местами...

B заданном одномерном массиве размером N поменять местами первый и последний положительные элементы
5. В заданном одномерном массиве размером N поменять местами первый и последний положительные...

Как в массиве строк поменять соседние элементы местами?
Как в массиве строк поменять соседние элементы местами? Предложение разбито на слова (в массив...

Как в одномерном массиве поменять местами четные и нечетные элементы местами
Как в обычном одномерном массиве поменять местами четные и нечетные элементы местами, без array

9
26 / 27 / 21
Регистрация: 17.05.2016
Сообщений: 94
28.09.2017, 06:58 2
В чем возникает сложность? Наработки есть?
0
1 / 1 / 1
Регистрация: 20.04.2017
Сообщений: 267
28.09.2017, 07:03  [ТС] 3
Он не хочет менять местами числа я хз уже где ошибку допустил
0
Эксперт .NET
12083 / 8391 / 1283
Регистрация: 21.01.2016
Сообщений: 31,641
28.09.2017, 07:16 4
Lastik228, воспользуйтесь отладчиком, чтобы понять как на самом деле данный код работает и выявить ошибку (если есть).
0
HF
1163 / 749 / 181
Регистрация: 09.09.2011
Сообщений: 2,314
Записей в блоге: 2
28.09.2017, 07:41 5
Цитата Сообщение от Lastik228 Посмотреть сообщение
Он не хочет менять местами числа я хз уже где ошибку допустил
блок "if" находится вне цикла, поэтому и не происходит перебора и замены.
0
1 / 1 / 1
Регистрация: 20.04.2017
Сообщений: 267
28.09.2017, 08:04  [ТС] 6
Нет он так же не хочет
0
HF
1163 / 749 / 181
Регистрация: 09.09.2011
Сообщений: 2,314
Записей в блоге: 2
28.09.2017, 08:10 7
Цитата Сообщение от Lastik228 Посмотреть сообщение
Нет он так же не хочет
во-первых, хорошо бы увидеть новый код, чтобы быть уверенными в том что вы правильно сделали начальное исправление.
во-вторых, лучше поменяйте проверку чётности на частоиспользуемый вариант:
C#
1
Math.Round(i / 2) == i / 2
на
C#
1
(i % 2) == 0
1
1 / 1 / 1
Регистрация: 20.04.2017
Сообщений: 267
28.09.2017, 10:48  [ТС] 8
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
   class Program
    {
        static void Main(string[] args)
        {
            int a, i, n;
            int[] m = new int[100];
            Random rand = new Random();
            n = 11;
            Console.WriteLine("Исхдный массив");
            for (i = 1; i < n; i++)
            {
                m[i] = rand.Next(0, 100);
                Console.Write(m[i] + " ");
            }
 
            Console.WriteLine("Результат перестановки массива");
            i = 0;
            for (i = 1; i < n - 1; i++)
            {
                Console.Write(m[i] + " ");
 
 
                if ((i > 1) && ((i%2)==i/2))
 
                {
                    a = m[i]; m[i] = m[i - 1]; m[i - 1] = a;
                }
            }
            for (i = 1; i < n - 1; i++)
            {
                Console.Write(m[i] + " ");
            }
            Console.ReadKey();
        }
    }
Миниатюры
В заданном одномерном массиве поменять местами соседние элементы  
0
Эксперт .NET
5871 / 4748 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
28.09.2017, 10:55 9
Lastik228,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
static void Main(string[] args)
{
    int a, i, n;
    int[] m = new int[100];
    Random rand = new Random();
    n = 11;
    Console.WriteLine("Исхдный массив");
    for (i = 0; i < n; i++)
    {
        m[i] = rand.Next(0, 100);
        Console.Write(m[i] + " ");
    }
    Console.WriteLine("Результат перестановки массива");
    for (i = 0; i < n - 1; i+=2)
    {
        a = m[i]; m[i] = m[i + 1]; m[i + 1] = a;
    }
    for (i = 0; i < n; i++)
    {
        Console.Write(m[i] + " ");
    }
    Console.ReadKey();
}
1
HF
1163 / 749 / 181
Регистрация: 09.09.2011
Сообщений: 2,314
Записей в блоге: 2
28.09.2017, 11:29 10
Цитата Сообщение от Lastik228 Посмотреть сообщение
C#
1) видимо вы не поняли (и не переспросили) как определяется чётное число через остаток от деления на два.
C#
1
(i % 2) == 0
Означает - после деления на 2, не должно быть остатка (ноль). Значит число чётное. Вы же не сделали того что я выше сказал, а сделали не понятно что
C#
1
((i%2)==i/2)
2) 20 строка выводит тоже самое что выводится в 13ой строке. Обмен значениями идёт в 23ей строке, если уж и "смотреть" то после блока if. И то там не верно будет показываться, так как конечный результат в последнем цикле.

3) 17ая строка избыточна. Цикл всё равно назначает значение "1".
1
28.09.2017, 11:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.09.2017, 11:29
Помогаю со студенческими работами здесь

В заданном массиве A[N] поменять местами наибольший и наименьший элементы
Ребята ПОМОГИТЕ ПОЖАЛУЙСТА!!!! Завтра последний день закрытия лабы по Алгоритмическим языкам(( в...

В одномерном массиве целых чисел поменять местами наибольший и наименьший элементы
Дан одномерный целочисленный массив все элементы которого различны. Найти наибольший и наименьший...

В заданном двумерном массиве размером N×N поменять местами элементы
В заданном двумерном массиве размером N×N поменять местами элементы, расположенные в верхней и ...

Поменять местами в одномерном массиве противоположные по знаку элементы (например 7.5 и -7.5), с учетов перестановки каждого элемента не более одного
Не пойму как реализовать чтобы проход по массиву чтобы местами он менял противоположные по знаку...


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

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