Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 07.05.2017
Сообщений: 1
1

В двух заданных матрицах найти максимальные элементы и поменять их местами

07.05.2017, 21:45. Показов 747. Ответов 1
Метки нет (Все метки)

В двух заданных матрицах найти максимальные элементы и поменять их местами. Поиск максимального элемента матрицы оформить в виде метода

Здравствуйте! Подскажите пожалуйста,что не так? При запуске, после того как выводит мои матрицы пишет "Индекс находился вне границ массива"

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
class Program
    {
 
        static void maxx(int[,] x, ref int xmax, ref int imax, ref int jmax)
        {
            int i, j;
            int n = x.Length;
            xmax = x[0, 0];
            imax = 0; jmax = 0;
            for (i = 0; i < n; i++)
            {
                for (j = 0; j < n; j++)
 
                    if (x[i, j] >= xmax)
                    {
                        xmax = x[i, j];
                        imax = i;
                        jmax = j;
                    }
 
            }
 
        }
 
 
            static void Main()
        {
                int i, j, n, m;
                Console.WriteLine("Введите размеры матрицы");
                n = int.Parse(Console.ReadLine());
                m = int.Parse(Console.ReadLine());
                int[,] a = new int[n, m];
                int[,] b = new int[n, m];
                Console.WriteLine("Введите элементы матрицы 1");
 
                for (i = 0; i < n; i++)
                { for (j = 0; j < m; j++)
                        a[i, j] = int.Parse(Console.ReadLine());
                }
                for (i = 0; i < n; i++)
                {
                    for (j = 0; j < m; j++)
                        Console.Write(" {0:d} ", a[i, j]);
                    Console.WriteLine();
                }
                Console.WriteLine("Введите элементы матрицы 2");
 
                Console.WriteLine();
                for (i = 0; i < n; i++)
                {
                    for (j = 0; j < m; j++)
                        b[i, j] = int.Parse(Console.ReadLine());
                }
                for (i = 0; i < n; i++)
                {
                    for (j = 0; j < m; j++)
                        Console.Write(" {0:f0} ", b[i, j]);
                    Console.WriteLine();
                }
 
 
                Console.WriteLine();
                Console.WriteLine();
 
                int amax = 0; int imax = 0; int jmax = 0;
                int bmax = 0, ibmax = 0, jbmax = 0;
                maxx(a, ref amax, ref imax, ref jmax);
                maxx(b, ref bmax, ref ibmax, ref jbmax);
                a[imax, jmax] = bmax;
                b[ibmax, jbmax] = amax;
                for (i = 0; i < a.Length; i++)
                { for (j = 0; j < a.Length; j++)
 
                        Console.Write("{0:d}  ", a[i, j]);
                }
                Console.WriteLine();
                for (i = 0; i < b.Length; i++)
                { for (j = 0; j < b.Length; j++)
 
                        Console.Write("{0:d}  ", b[i, j]);
                }
                Console.WriteLine();
 
 
 
 
 
            }
        }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.05.2017, 21:45
Ответы с готовыми решениями:

Поменять местами максимальные элементы матриц
Ув. формчани, помогите решить задачку такого сорта. Поменять местами максимальные элементы матриц...

Поменять местами максимальные элементы матриц
кто может помочь решить лабораторную

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

Поменять местами соответствующие элементы двух массивов между собой
Поменять местами соответствующие элементы двух массивов между собой: Х = (-4, 23, 53.05, -0.009) У...

__________________

Записывайтесь на профессиональные курсы С#-разработчиков‌
1
1742 / 1335 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
08.05.2017, 01:49 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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
using System;
 
namespace ConsoleApp1
{
    class Program
    {
        static void Inp(int[,] a)
        {
            for (int i = 0; i < a.GetLength(0); i++)
                for (int j = 0; j < a.GetLength(1); j++)
                {
                    Console.Write($"[{i + 1}, {j + 1}] = ");
                    a[i, j] = int.Parse(Console.ReadLine());
                }
        }
 
        static void Output(int[,] a)
        {
            for (int i = 0; i < a.GetLength(0); i++)
            {
                for (int j = 0; j < a.GetLength(1); j++)
                    Console.Write(a[i, j] + "\t");
                Console.WriteLine();
            }
            Console.WriteLine();
        }
 
        static int imA = 0, jmA = 0, imB = 0, jmB = 0;
 
        static void SwapMax(int[,] a, int[,] b)
        {
            int x = a[imA, jmA];
            a[imA, jmA] = b[imB, jmB];
            b[imB, jmB] = x;
        }
 
        static void Main()
        {
            Console.Write("n = "); int n = int.Parse(Console.ReadLine());
            Console.Write("m = "); int m = int.Parse(Console.ReadLine());
            int[,] a = new int[n, m];
            int[,] b = new int[n, m];
            Console.WriteLine("Матрица A:"); Inp(a);
            Console.WriteLine("Матрица B:"); Inp(b);
            Console.Clear();
            Console.WriteLine("Матрица A:"); Output(a);
            Console.WriteLine("Матрица B:"); Output(b);
 
            for (int i = 0; i < a.GetLength(0); i++)
                for (int j = 0; j < a.GetLength(1); j++)
                    if (a[i, j] > a[imA, jmA]) { imA = i; jmA = j; }
 
            for (int i = 0; i < b.GetLength(0); i++)
                for (int j = 0; j < b.GetLength(1); j++)
                    if (b[i, j] > b[imB, jmB]) { imB = i; jmB = j; }
 
            SwapMax(a, b);
            Console.WriteLine("Результирующая A:"); Output(a);
            Console.WriteLine("Результирующая B:"); Output(b);
        }
    }
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.05.2017, 01:49

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

поменять местами максимальные и минимальные значения
Необходимо поменять местами максимальные и минимальные значения в каждом столбце и строке в...

Поменять местами минимальные и максимальные елементы масива размера N
Дан масив целых чисел размера N. Вывести сначала все его парные (непарные) елементы, а потом-...

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

Определить максимальные элементы и поменять их местами в каждом из двух заданных массивов
1.Дано два массива действительных чисел. Определить максимальные элементы в каждом массиве и...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.