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

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

13.11.2021, 21:24. Показов 1147. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана целочисленная прямоугольная таблица размером m×n. Поменять местами строки с максимальной суммой модулей элементов и минимальным произведением модулей элементов.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.11.2021, 21:24
Ответы с готовыми решениями:

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

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

Поменять в матрице местами строки с максимальной суммой элементов и наименьшим произведением элементов
дан текстовый файл, содержащий матрицу mxn Поменять в ней местами строки с максимальной суммой элементов и наименьшим произведением...

5
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3430 / 2749 / 575
Регистрация: 04.09.2018
Сообщений: 8,633
Записей в блоге: 3
13.11.2021, 23:44
padge123,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
            int[,] arr = FillRandomMatrix( 3, 4, -50, 50 );
            Print( arr );
 
            int idx1 = MaxAbsSumRow( arr );
            int idx2 = MinAbsMultRow( arr );
 
            Console.WriteLine( $"Строка с максимальной суммой модулей: {idx1}" );
            Console.WriteLine( $"Строка с минимальным произведением модулей: {idx2}" );
            Console.WriteLine();
            Console.WriteLine( "Измененный массив:" );
            RowSwap( idx1, idx2, arr );
            Print( arr );
 
            Console.ReadKey();
Code
1
2
3
4
5
6
7
8
9
10
11
13      -41     -45     -32
50      -36     -36     -24
37      33      -28     -48
 
Строка с максимальной суммой модулей: 1
Строка с минимальным произведением модулей: 2
 
Измененный массив:
13      -41     -45     -32
37      33      -28     -48
50      -36     -36     -24
Функции:
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
        #region Строка с Максимальной суммой модулей
        public static int MaxAbsSumRow( int[,] matrix )
        {
            int r = 0, sAbsMax = 0;
 
            for ( int i = 0; i < matrix.GetLength( 0 ); i++ )
            {
                int sAbs = 0;
                for ( int j = 0; j < matrix.GetLength( 1 ); j++ )
                {
                    sAbs += Abs( matrix[ i, j ] );
                }
                if ( sAbs > sAbsMax ) { sAbsMax = sAbs; r = i; }
            }
            return r;
        }
        #endregion
 
        #region Строка с Минимальным произведением модулей
        public static int MinAbsMultRow( int[,] matrix )
        {
            int r = 0, mAbsMin = 0;
            for ( int i = 0; i < matrix.GetLength( 0 ); i++ )
            {
                int mAbs = 0;
                for ( int j = 0; j < matrix.GetLength( 1 ); j++ )
                {
                    mAbs *= Abs( matrix[ i, j ] );
                }
                if ( mAbs < mAbsMin || mAbsMin == 0 ) { mAbsMin = mAbs; r = i; }
            }
            return r;
        }
        #endregion
 
        #region Обмен строк местами по индексу строк
        public static void RowSwap( int a, int b, int[,] matrix )
        {
            int[] arr = new int[ matrix.GetLength( 1 ) ];
            for ( int i = 0; i < matrix.GetLength( 1 ); i++ )
            {
                arr[ i ] = matrix[ a, i ];
                matrix[ a, i ] = matrix[ b, i ];
            }
            for ( int i = 0; i < matrix.GetLength( 1 ); i++ )
                matrix[ b, i ] = arr[ i ];
        }
        #endregion
 
        #region Abs
        static int Abs( int x ) => x > 0 ? x : -x; 
        #endregion
Добавлено через 6 минут
Поправка:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
        public static int MinAbsMultRow( int[,] matrix )
        {
            int r = 0, mAbsMin = int.MaxValue;
            for ( int i = 0; i < matrix.GetLength( 0 ); i++ )
            {
                int mAbs = 0;
                for ( int j = 0; j < matrix.GetLength( 1 ); j++ )
                {
                    mAbs *= Abs( matrix[ i, j ] );
                }
                if ( mAbs < mAbsMin ) { mAbsMin = mAbs; r = i; }
            }
            return r;
        }
Code
1
2
3
4
5
6
7
8
9
10
11
15      -7      -37     3
23      -24     -43     12
-45     -18     -14     45
 
Строка с максимальной суммой модулей: 2
Строка с минимальным произведением модулей: 0
 
Измененный массив:
-45     -18     -14     45
23      -24     -43     12
15      -7      -37     3
0
0 / 0 / 0
Регистрация: 09.11.2021
Сообщений: 96
15.11.2021, 21:08  [ТС]
Можешь скинуть всё вместе целый код
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3430 / 2749 / 575
Регистрация: 04.09.2018
Сообщений: 8,633
Записей в блоге: 3
15.11.2021, 22:44
Цитата Сообщение от padge123 Посмотреть сообщение
Можешь скинуть всё вместе целый код
Скину завтра.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3430 / 2749 / 575
Регистрация: 04.09.2018
Сообщений: 8,633
Записей в блоге: 3
16.11.2021, 11:24
Лучший ответ Сообщение было отмечено padge123 как решение

Решение

padge123,
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
        static void Main()
        {
            Console.Write( "Кол-во строк: " );
            int n = int.Parse( Console.ReadLine() );
            Console.Write( "Кол-во столбцов: " );
            int m = int.Parse( Console.ReadLine() );
            int[,] arr = new int[n,m];
 
            // Заполняем массив случайными числами и выводим в консоль
            Random rnd = new();
            for ( int i = 0; i < n; i++ )
            {
                for ( int j = 0; j < m; j++ )
                {
                    arr[ i, j ] = rnd.Next( 100 );
                    Console.Write( arr[ i, j ] + " " );
                }
                Console.WriteLine();
            }
 
            // Ищем строку с максимально суммой модулей
            int idx1 = 0, sAbsMax = 0;
 
            for ( int i = 0; i < arr.GetLength( 0 ); i++ )
            {
                int sAbs = 0;
                for ( int j = 0; j < arr.GetLength( 1 ); j++ )
                {
                    sAbs += Math.Abs( arr[ i, j ] );
                }
                if ( sAbs > sAbsMax ) { sAbsMax = sAbs; idx1 = i; }
            }
            Console.WriteLine( $"Строка с максимальной суммой модулей: {idx1}" );
 
            // Ищем строку с минимальным произведением модулей
            int idx2 = 0, mAbsMin = int.MaxValue;
            for ( int i = 0; i < arr.GetLength( 0 ); i++ )
            {
                int mAbs = 0;
                for ( int j = 0; j < arr.GetLength( 1 ); j++ )
                {
                    mAbs *= Math.Abs( arr[ i, j ] );
                }
                if ( mAbs < mAbsMin ) { mAbsMin = mAbs; idx2 = i; }
            }
            Console.WriteLine( $"Строка с минимальным произведением модулей: {idx2}" );
            Console.WriteLine();
 
            // Меняем строки местами
            int[] temp = new int[ arr.GetLength( 1 ) ];
            for ( int i = 0; i < arr.GetLength( 1 ); i++ )
            {
                temp[ i ] = arr[ idx1, i ];
                arr[ idx1, i ] = arr[ idx2, i ];
            }
            for ( int i = 0; i < arr.GetLength( 1 ); i++ )
                arr[ idx2, i ] = temp[ i ];
 
            // Выводим в консоль
            Console.WriteLine( "Измененный массив:" );
            for ( int i = 0; i < n; i++ )
            {
                for ( int j = 0; j < m; j++ )
                    Console.Write( arr[ i, j ] + " " );
                Console.WriteLine();
            }
 
            Console.ReadKey();
        }
Тест:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Кол-во строк: 5
Кол-во столбцов: 6
16 93 81 58 37 3
15 61 73 56 21 36
25 31 17 79 20 56
13 81 83 42 7 89
70 64 36 47 49 17
Строка с максимальной суммой модулей: 3
Строка с минимальным произведением модулей: 0
 
Измененный массив:
13 81 83 42 7 89
15 61 73 56 21 36
25 31 17 79 20 56
16 93 81 58 37 3
70 64 36 47 49 17
0
0 / 0 / 0
Регистрация: 09.11.2021
Сообщений: 96
16.11.2021, 11:35  [ТС]
да какого хрена у меня ничего не выводит?

Добавлено через 2 минуты
всё я там подправил и вывелось
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.11.2021, 11:35
Помогаю со студенческими работами здесь

Определить номер столбца с максимальной суммой и строки с минимальным произведением элементов
Здравствуйте! Прошу помочь с задачкой...Начало положено, но что-то выводит совсем не то, что хотелось бы... Исходное условие:Дана...

Найти строку с максимальной суммой модулей элементов
Среди тех строк целочисленной матрицы, которые содержат только нечетные элементы, найти строку с максимальной суммой модулей элементов.

найти строку с максимальной суммой модулей элементов.
Среди тех строк целочисленной матрицы, которые содержат только нечетные элементы, найти строку с максимальной суммой модулей элементов.

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

Найти строку с максимальной суммой модулей элементов
Подскажите пожалуйста!!! Видел реализацию на Delphi, но этот язык мне мало понятен. помогите сделать программу на СИ.. Спасибо!! Среди...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru