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

Поменять местами элементы двумерного массива

05.03.2016, 19:21. Показов 6988. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
По заданию нужно сформировать двумерный массив , найти в нём max выше главной диагонали/min ниже главной эл-ты и поменять их местами.

Не получается обмен. Его нужно как-то через индексы делать(?). Как поменять найденные эл-ты местами?

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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace laba
{
    class Program
    {
        static void Swap(ref int x, ref int y)
        {
            int temp = x;
            x = y;
            y = temp;
        }
 
        static void Main(string[] args)
        {
            Int32 i, j, max, min;
 
            Int32[,] a = new int[5, 5];
            Random r = new Random();
            max = 0;
            min = 20;
 
            for (i = 0; i < 5; i++)
            {
                for (j = 0; j < 5; j++)
                {
                    a[i, j] = r.Next(5, 20);
                    Console.Write("{0,-5}", a[i, j]);
                }
                Console.WriteLine();
            }
 
            for (i = 0; i < 5; i++)
            {
                for (j = 0; j < 5; j++)
                {
                    if (i < j)
                    {
 
                        if (a[i, j] > max)
                        {
                            max = a[i, j];
                        }
                    }
                }
            }
 
            Console.WriteLine(" max:{0}", max);
 
            for (i = 0; i < a.GetLength(0); i++)
            {
                for (j = 0; j < a.GetLength(1); j++)
                {
                    if (a[i, j].Equals(max))
                    {
                        Console.Write("i max = " + (i+1) + ", j max = " + (j+1));
                        i = a.GetLength(0);
                        break;
                    }
                }
            }
            for (i = 0; i < 5; i++)
            {
                for (j = 0; j < 5; j++)
                {
                    if (i > j)
                    {
 
                        if (a[i, j] < min)
                        {
                            min = a[i, j];
                        }
                    }
                }
            }
            Console.WriteLine("\n min:{0}", min);
            for (i = 0; i < a.GetLength(0); i++)
            {
                for (j = 0; j < a.GetLength(1); j++)
                {
                    if (a[i, j].Equals(min))
                    {
                        Console.Write("i min = " + (i+1) + ", j min = " + (j+1));
                        i = a.GetLength(0);
                        break;
                    }
                }
            }
 
 
            /*     for (i = 0; i < a.GetLength(0); i++)
                 {
                     max = 0;
                     for (int j = 1; j < a.GetLength(1); j++)
                         if (a[i, indMax] < a[i, j]) max = j;
                     Swap (ref a[i, indMax], ref a[i, indMin]);
                 }
 
                 Console.WriteLine("Итоговый массив");
                 for (int i = 0; i < a.GetLength(0); i++)
                 {
                     for (int j = 0; j < a.GetLength(1); j++)
                         Console.Write("\t" + a[i, j]);
                     Console.WriteLine();*/
 
            Console.ReadKey();
        }
    }
}
Добавлено через 42 минуты
всё, нашлись похожие, извините.
можно удалить/закрыть.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.03.2016, 19:21
Ответы с готовыми решениями:

Поменять местами наименьшие элементы в первой и третьей строке двумерного массива
Помогите, пожалуйста. В матрице А(3-строки,4-столбца) поменять местами наименьшие элементы в...

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

Как поменять местами столбцы двумерного массива
необходимо поменять ближайшие нечетные и четные строки(это я сделал), после чего поменять первый...

Как развернуть (поменять местами) диагонали двумерного массива?
Я помню как делал задание с перемещением столбца и строки на пересечении минимального элемента,...

1
1494 / 1209 / 821
Регистрация: 29.02.2016
Сообщений: 3,614
05.03.2016, 20:11 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
35
36
37
38
39
40
41
 public class Sample 
    { 
        private double[,] data; 
 
        public double this[int i, int j] 
        { 
            get 
            { 
                return data[i, j]; 
            } 
            set 
            { 
                data[i, j] = value; 
            } 
        } 
 
        public Sample() 
        { 
            data = new double[10, 10]; 
        } 
 
        static void Main(string[] args) 
        { 
            var p1 = new Sample(); 
            var p2 = new Sample(); 
 
            p1[0, 0] = 5; 
            p2[0, 0] = 10; 
            Console.WriteLine("P1[0,0] = {0} \nP2[0,0] = {1}\n", p1[0, 0], p2[0, 0]); 
            Swap(p1, p2,0,0,0,0); 
            Console.WriteLine("P1[0,0] = {0} \nP2[0,0] = {1}", p1[0, 0], p2[0, 0]); 
 
        } 
 
        public static void Swap(Sample a1, Sample a2, int x1, int y1, int x2, int y2) 
        { 
            double temp = a1[x1, y1]; 
            a1[x1, y1] = a2[x2, y2]; 
            a2[x2, y2] = temp; 
        }  
    }
если использовать класс то все должно получиться
0
05.03.2016, 20:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.03.2016, 20:11
Помогаю со студенческими работами здесь

Поменять местами наиб и наим элемент в каждой строке двумерного массива
for (int i = 0; i &lt; n; i++) { for (int j = 0; j &lt; m; j++) ...

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

Поменять местами элементы массива
Поменять местами максимальный и минимальный элементы массива. Вот то, что у меня получилось...

Как поменять элементы массива местами?
Нужно поменять min и max местами using System; class HelloWorld { static void Main() { ...


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

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