0 / 0 / 0
Регистрация: 21.03.2014
Сообщений: 5

Поменять местами две средних строки, если количество строк чётное, и первую со средней строкой, если нечётное

07.05.2014, 23:20. Показов 7136. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста
Использовать двумерный массив.
Дан массив размером nxn, элементы которого целые числа.Поменять местами две средних строки, если количество строк чётное, и первую со средней строкой, если количество строк нечётное.
Я что-то запутался с кодом
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
namespace _1
{
    class Program
    {
        static int[,] Input(out int n)
        {
            Console.WriteLine("введите размерность массива");
            Console.Write("n = ");
            n = int.Parse(Console.ReadLine());
            int[,] a = new int[n, n];
            for (int i = 0; i < n; ++i)
                for (int j = 0; j < n; ++j)
                {
                    Console.Write("a[{0},{1}]= ", i, j);
                    a[i, j] = int.Parse(Console.ReadLine());
                }
            return a;
        }
 
        static void Print(int[,] a)
        {
            for (int i = 0; i < a.GetLength(0); ++i, Console.WriteLine())
                for (int j = 0; j < a.GetLength(1); ++j)
                    Console.Write("{0,5} ", a[i, j]);
        }
 
        static int[,] Rezalt(int[,] a)
        {
 
            if (a.GetLength(0) % 2 == 0)
            {
                for (int i = 0; i < a.GetLength(0) - 1; i++)
                {
                    for (int j = 0; j < a.GetLength(1); j++)
                    {
                        int temp = a[i, a.GetLength(1)];
                        a[i, a.GetLength(1)] = a[i, j];
                        a[i, j] = temp;
                    }
                    i++;
                }
               
            }
            else
            {
                
                    for (int i = 0; i < a.GetLength(0) - 1; i++)
                    {
                        for (int j = 0; j < a.GetLength(1); j++)
                        {
                            int temp = a[i + a.GetLength(0), j];
                            a[i + a.GetLength(0), j] = a[i, j];
                            a[i, j] = temp;
                        }
                        i++;
                    }
                    
                
            }
            return a;
        }
            
 
        static void Main(string[] args)
        {
            int n;
            int[,] myArray = Input(out n);
            Console.WriteLine("Исходный массив:");
            Print(myArray);
            int[,] res = new int[n, n];
            Console.WriteLine("Полученный массив:");
            res = Rezalt(myArray);
            Print(res);
            Console.ReadKey();
            
        }
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.05.2014, 23:20
Ответы с готовыми решениями:

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

Поменять местами две средних строки, если количество строк четное, и первую со средней строкой, если количество строк нечетное
поменять местами двесредних строки, если количество строк четное, и первую со средней строкой, если количество строк нечетное

В матрице переставиь 2 средних строки,если кол-во строк четное, первую со средней, если кол-во строк нечетное
Дан массив размером n*n, элементы которого-целые числа. Поменять местами 2 средних строки,если кол-во строк четное,и первую со средней...

5
 Аватар для Lexeq
1151 / 743 / 483
Регистрация: 21.01.2014
Сообщений: 1,903
08.05.2014, 00:58
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
51
52
53
54
55
56
57
58
59
using System;
namespace _1
{
    class Program
    {
        static int[,] Input(out int n)
        {
            Console.WriteLine("введите размерность массива");
            Console.Write("n = ");
            n = int.Parse(Console.ReadLine());
            int[,] a = new int[n, n];
            for (int i = 0; i < n; ++i)
                for (int j = 0; j < n; ++j)
                {
                    Console.Write("a[{0},{1}]= ", i, j);
                    a[i, j] = int.Parse(Console.ReadLine());
                }
            return a;
        }
 
        static void Print(int[,] a)
        {
            for (int i = 0; i < a.GetLength(0); ++i, Console.WriteLine())
                for (int j = 0; j < a.GetLength(1); ++j)
                    Console.Write("{0,5} ", a[i, j]);
        }
 
        static void Rezalt(int[,] a)
        {
            int row1;
            int row2;
            if (a.GetLength(0) % 2 ==0) {
                row1 = a.GetLength(0) / 2;
                row2 = row1 - 1;
            }
            else {
                row1 = a.GetLength(0) / 2;
                row2 = 0;
            }
            for (int i = 0; i < a.GetLength(1); i++) {
                int tmp = a[row1,i];
                a[row1,i] = a[row2, i];
                a[row2, i] = tmp;   
            }
        }
 
        static void Main(string[] args)
        {
            int n;
            int[,] myArray = Input(out n);
            Console.WriteLine("Исходный массив:");
            Print(myArray);
            Console.WriteLine("Полученный массив:");
            Rezalt(myArray);
            Print(myArray);
            Console.ReadKey();
        }
    }
}
1
36 / 36 / 16
Регистрация: 26.11.2011
Сообщений: 199
08.05.2014, 01:00
Вот! если что не понятно пиши объясню
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
static int[,] Rezalt(int[,] a)
        {
            //строки которые нужно поменять местами
            int n=0;
            int m=0;
            //если четное количество строк
            if (a.GetLength(0) % 2 == 0)
            {
                n = (a.GetLength(0) / 2) - 1;// n - строка выше середины
                m = (a.GetLength(0) / 2) + 1;// m - строка ниже середины            
            }
            else 
            { m = a.GetLength(0) / 2;/* m - средняя строка */}
            for (int j = 0; j <= a.GetLength(0) - 1; j++)
            {
                int temp = a[n, j];
                a[n, j] = a[m, j];
                a[m, j] = temp;
            }
            return a;
        }
0
 Аватар для Lexeq
1151 / 743 / 483
Регистрация: 21.01.2014
Сообщений: 1,903
08.05.2014, 01:54
kmet_misha,
C#
1
2
                n = (a.GetLength(0) / 2) - 1;// n - строка выше середины
                m = (a.GetLength(0) / 2) + 1;// m - строка ниже середины
Тут ошибка, если количество строк четно, то две средних - это две соседних, а у вас через одну. Ну и соответственно, при размерности 2 у вас будет IndexOutOfRangeException.
1
36 / 36 / 16
Регистрация: 26.11.2011
Сообщений: 199
08.05.2014, 11:54
Lexeq, Согласен!))
C#
1
2
 n = (a.GetLength(0) / 2) - 1;// n - строка выше середины
 m = (a.GetLength(0) / 2);// m - строка ниже середины
0
0 / 0 / 0
Регистрация: 21.03.2014
Сообщений: 5
08.05.2014, 22:37  [ТС]
Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.05.2014, 22:37
Помогаю со студенческими работами здесь

Если количество строк в массиве четное, то поменять строки местами по правилу: первую строку со второй, третью - с четвертой и т.д
Доброго времени суток, ув. Форумчане! Вынужден просить Вашей помощи в решении нескольких задач, т.к. сам на данный момент не разберусь...

В целочисленной матрице поменять строки местами, если количество строк нечетное
Если количество строк в массиве четное, то поменять строки местами по правилу: первую строку со второй, третью – с четвертой и т.д. Если...

Если количество строк в матрице четное, то поменять строки местами по правилу
Помогите с задачей !!!!!! Создать квадратную матрицу целых чисел: - массив заполнить случайными значениями с помощью генератора...

Если количество строк в массиве четное, то поменять строки местами по правилу
Если количество строк в массиве четное, то поменять строки местами по правилу: первую строку со второй, третью - с четвертой и т.д. Если ...

Если количество строк в массиве четное, то поменять строки местами по правилу
Первую строку - со второй, третью - с четвертой и т.д. В противном случае оставить все без изменений.


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

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

Новые блоги и статьи
Вопросы на собеседованиях по микросервисам
ArchitectMsa 27.03.2025
Работодатели ищут не просто разработчиков, знающих базовые концепции, а специалистов, разбирающихся в тонкостях масштабирования, отказоустойчивости и производительности. Сейчас на первый план выходят. . .
Взаимодействие Python с REST API
py-thonny 27.03.2025
REST API - это архитектурный стиль взаимодействия компонентов распределённого приложения в сети. Python располагает функциональным набором инструментов для работы с REST API и основная библиотека для. . .
sshd restrictions, ssh access limitations
jigi33 26.03.2025
sshd restrictions | ssh access limitations рестрикции доступа на сервер sshd статья: https:/ / www. golinuxcloud. com/ restrict-allow-ssh-certain-users-groups-rhel
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
Многопоточное программировани­е в C#: Класс Thread
UnmanagedCoder 24.03.2025
Когда запускается приложение на компьютере, операционная система создаёт для него процесс - виртуальное адресное пространство. В C# этот процесс изначально получает один поток выполнения — главный. . .
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru