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

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

07.04.2013, 22:09. Показов 2707. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задана матрица А(4,4). Если максимальный элемент матрицы равен сумме элементов первой строки, то поменять местами первую строку с той строкой, где находится максимальный элемент. язык С#
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.04.2013, 22:09
Ответы с готовыми решениями:

Поменять местами первую строку матрицы с той строкой, где находится максимальный элемент
Задана матрица А(4,4). Если максимальный элемент матрицы равен сумме элементов первой строки, то поменять местами первую строку с той...

Поменять местами строку , в которой находится максимальный элемент со строкой, где находится минимальный элемент матрицы
Дана целочисленная матрица А размером N, где N вводится с клавиатуры. Поменять местами строку , в которой находится максимальный элемент со...

Матрица. Поменять местами первую с той строкой, где находится минимальный элемент
Ребят помогите решить задачку! Задана матрица В(4,4). Если максимальный элемент матрицы равен сумме элементов первой строки, то поменять...

4
Заблокирован
08.04.2013, 03:45
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
using System;
using System.IO;
 
namespace Algorithms
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            try
            {
                Resolve();
            }
            catch (Exception)
            {
                Console.WriteLine("Корявый ввод");
            }
            Console.ReadKey();
        }
 
        private static void Resolve()
        {
            int[] m = ReadMatrix(Console.In); //читаем матрицу 4x4 в одномерный массив
            int sum = SumRow1(m); //находим сумму первой строки
            int max = MaxIndexOf(m); //находим индекс максимального элемента 
            if (m[max] == sum) // если max равен сумме элементов первой строки  
            {
                int row = GetRowIndex(max); //получаем по одномерному индексу номер строки
                SwapRows(m, row); //обмениваем строки
            }
            PrintMatrix(m, Console.Out); //выводим на консоль
        }
 
        private static int[] ReadMatrix(TextReader reader)
        {
            int[] m = new int[16]; //матрица 4x4 
            for (int i = 0; i < 4; ++i)
            {
                string[] line = reader.ReadLine().Split();
                for (int j = 0; j < 4; ++j)
                    m[j + i * 4] = int.Parse(line[j]);
            }
            return m;
        } 
 
        private static void SwapRows(int[] m, int row)
        {
            if(row == 0) return;
            for (int i = 0; i < 4; ++i)
                Swap(ref m[i], ref m[i + row*4]);
        }
 
        private static void Swap(ref int a, ref int b)
        {
            int t = a;
            a = b;
            b = t;
        }
 
        private static int GetRowIndex(int idx)
        {
            return idx/4;
        }
 
        private static int SumRow1(int[] m)
        {
            int s = 0;
            for (int i = 0; i < 4; ++i) s += m[i];
            return s;
        }
 
        private static int MaxIndexOf(int[] m)
        {
            int max = 0;
            for (int i = 0; i < m.Length; ++i)
                if (m[max] < m[i]) max = i;
            return max;
        }
 
        private static void PrintMatrix(int[] m, TextWriter writer)
        {
            for (int i = 0; i < 4; ++i)
            {
                for (int j = 0; j < 4; ++j)
                    writer.Write(m[j + i*4] + " ");
                writer.WriteLine();
            }
        }
    }
}
Добавлено через 27 минут
меня радует только, что все равно ты нихрена не поймешь.
0
 Аватар для Дмитрий3241
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
Записей в блоге: 6
08.04.2013, 08:20
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от farting Посмотреть сообщение
меня радует только, что все равно ты нихрена не поймешь.
От куда у тебя такая ненависть к новичкам? Я не думаю, что ты с первого дня уже мог написать хотя бы "Hello world".

Добавлено через 4 часа 3 минуты
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
using System;
 
namespace ConsoleApplication3
{
    class Program
    {
        static void Main( string[] args )
        {
            int[,] matrix = new int[4, 4]
            {
                { 1, 2, 3, 4 },
                { 1, 2, 3, 4 },
                { 1, 2, 10, 4 },
                { 1, 2, 3, 4 }
            };
 
            int sum = 0; //Сумма первой строки
            for ( int i = 0; i < 4; i++ )
                sum += matrix[0, i];
 
            int tmp = int.MinValue, index = 0; //Индекс максимального элемента
            for ( int i = 0; i < 4; i++ )
            {
                for ( int j = 0; j < 4; j++ )
                {
                    if ( tmp < matrix[i, j] )
                    {
                        tmp = matrix[i, j];
                        index = i;
                    }
                }
            }
 
            for ( int i = 0; i < 4; i++ ) //Меняем местами строки
            {
                tmp = matrix[0, i];
                matrix[0, i] = matrix[index, i];
                matrix[index, i] = tmp;             
            }
 
            for ( int i = 0; i < 4; i++ ) //Выводим матрицу
            {
                for ( int j = 0; j < 4; j++ )
                    Console.Write( matrix[i, j] + " " );
                Console.WriteLine();
            }
 
            Console.ReadKey( true );
        }
    }
}
1
Заблокирован
08.04.2013, 12:37
Дмитрий3241, я новичок и прошу не пинать сильно, но где у Вас проверка:
Цитата Сообщение от Pikosh Посмотреть сообщение
Если максимальный элемент матрицы равен сумме элементов первой строки
?

Добавлено через 3 минуты
и еще если используется двумерный массив, то значительно эффективнее в плане обмена строк будет хранить матрицу в массиве массивов.
0
2 / 2 / 0
Регистрация: 06.04.2013
Сообщений: 101
10.04.2013, 21:07  [ТС]
farting, почему не поняла. в программе все ясно сказано и очень даже понятно спасибо большое)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.04.2013, 21:07
Помогаю со студенческими работами здесь

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

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

В массиве поменять первую строку со строкой в которой находится максимальный элемент
1) В массиве поменять первую строку со строкой в которой находится максимальный элемент. Вывести полученный массив на экран. 2) Все...

Если max матрицы равен сумме элементов первой строки, поменять местами первую строку с той, где находится max
Задана матрица. А (4,4). Если максимальный элемент матрицы равен сумме элементов первой строки, то поменять местами первую строку с той...

Найти максимальный элемент главной диагонали матрицы, поменять местами строку/столбец, где он находится
С клавиатуры вводится матрица чисел P Найти максимальнный элемент главной диагонали Поменять местами элементы строки и столбца , на...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
1С: Программный отбор элементов справочника Номенклатура по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника Сотрудники по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru