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

Суммирование стобцов и рядков в двумерном массиве

22.12.2010, 23:00. Показов 1977. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите, будьте добры, с задачей. Условие: дана матрица размера m * n (m и n вводятся 2<=m<=5, 2<=n<=10) Найти 1)Минимальное 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
static void Main(string[] args)
        {
            int n, m, i, j=0,min,max,s=0,s0=0;
            int a=0, b=0;
            Console.WriteLine("Enter number of columns");
            n = int.Parse(Console.ReadLine());//змінній n присваюємо значення довжини масиву
            Console.WriteLine("Enter number of rows");
            m = int.Parse(Console.ReadLine());//змінній m присваюємо значення довжини масиву
            /*int[,] arr;
            arr = new int[,] { { m }, { n } };*/
            int[,] arr = new int[m, n];
            Console.WriteLine();
            for (i = 0; i < m; i++)//заповнюємо масив
            {
                for (j = 0; j < n; j++)
                {                   
                    arr[i, j] = int.Parse(Console.ReadLine());//зчитуємо                    
                }
            }
            Console.WriteLine();
 
            for (i = 0; i < m; i++)
            {
                for (j = 0; j < n; j++)
                {
                    s0 = s;
                    Console.WriteLine("stolb is {0} ryad is {1}", j+1, i+1);
                    Console.WriteLine(arr[i, j] + "\t");
                    s += arr[i, j];
                    /*Console.WriteLine("\t");*/
                }
                Console.WriteLine("SUM of ryad {0} IS {1}", i + 1, s);
                s = 0;
                Console.WriteLine();
            }
            s = 0;
 
            for (j = 0; j < n; j++)
            {
                for (i = 0; i < m; i++)
                {
                    s0 = s;
                    s += arr[i, j];
                    a = s;
                }
                Console.WriteLine("SUM of stolb {0} IS {1}",j+1 , s);
                a = s;
 
            } 
            s = 0;
 
 
             Console.ReadKey(true);
        }
Буду рад вашей помощи! Комментарии в коде приветствуются
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.12.2010, 23:00
Ответы с готовыми решениями:

Суммирование чисел в массиве
Здравствуйте, помогите с таким вопросом: мне необходимо суммировать два числа массива, вводимым пользователем. Вот мой код, подскажите,...

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

Задача о двумерном массиве
Есть двухмерный массив, все четные числа массива нужно положить в один одномерный массив, все нечетные в другой массив Заводим...

4
 Аватар для DeKaN
36 / 36 / 8
Регистрация: 10.02.2010
Сообщений: 184
23.12.2010, 14:50
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
            int n = 3;
            int m = 4;
            int[][] a = new int[n][];
            for (int i = 0; i < n; i++)
                a[i] = new int[m];
 
            //Суммы строк
            int[] SumR = new int[n];
            for (int i = 0; i < n; i++)
            {
                SumR[i] = 0;
                for (int j = 0; j < m; j++)
                    SumR[i] += a[i][j];
            }
            //Суммы столбцов
            int[] SumC = new int[m];
            for (int i = 0; i < m; i++)
            {
                SumC[i] = 0;
                for (int j = 0; j < n; j++)
                    SumC[i] += a[j][i];
            }
 
            Point Max = new Point(0, 0);//Максимальное значение
            Point Min = new Point(0, 0);//Минимальное значение
            for (int i = 0; i < n; i++)
                for (int j = 0; j < m; j++)
                {
                    if (SumR[i] + SumC[j] > SumR[Max.Y] + SumC[Max.X])
                        Max = new Point(j, i);
                    if (SumR[i] + SumC[j] < SumR[Min.Y] + SumC[Min.X])
                        Min = new Point(j, i);
                }
 
            Console.WriteLine("Min a[{0}][{1}] = {2}", Min.Y, Min.X, SumR[Min.Y] + SumC[Min.X]);
            Console.WriteLine("Max a[{0}][{1}] = {2}", Max.Y, Max.X, SumR[Max.Y] + SumC[Max.X]);
1
0 / 0 / 0
Регистрация: 22.12.2010
Сообщений: 11
23.12.2010, 22:50  [ТС]
Благодарю. А представляется возможным сделать это используя методы?
0
 Аватар для DeKaN
36 / 36 / 8
Регистрация: 10.02.2010
Сообщений: 184
24.12.2010, 01:26
Каких методов? Тебе нужно найти минимум и максимум....Находится в 4 этапа.
1 - ввод данных в массив a[n][m]
2 - получаем массив SumR[n] - Сумма значений в строках массива a
3 - получаем массив SumC[m] - Сумма значений в столбцах массива a
4 - Получаем минимум и максимум
Можно эти этапы разделить в отдельные функции если хочешь, а так всё.
0
0 / 0 / 0
Регистрация: 22.12.2010
Сообщений: 11
24.12.2010, 23:45  [ТС]
Простите за некорректность. Да именно єто я и имел ввиду. Мне надо создать несколько функций - для подсчета сумы столбцов, для суммы в строках, для нахождения максимума и минимума. Я никак не могу разобраться как ими грамотно пользоваться. Если на то пошло, то весь код печатать не обязательно, постараюсь сам допереть.

Добавлено через 11 часов 19 минут
Кстати хочу добавить что код таки не работает.Ругается на Point, говорит "Ошибка 3 Не удалось найти имя типа или пространства имен "Point" (пропущена директива using или ссылка на сборку?)". У меня 10 VS.

Добавлено через 4 часа 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
class Matrix
    {
        static void Rows(ref int[,] arr, int s , List<int>sr)
        {
            Console.WriteLine("Counting sums");
            int s0 = 0;
            for (int i = 0; i < arr.GetLength(1); i++)
            {
                for (int j = 0; j < arr.GetLength(0); j++)
                {
                    
                    s0 = s;
                    Console.WriteLine("Column is {0} row is {1} element is {2}", i+1 , j+1, arr[i,j]);
                    
                    s += arr[i, j];
                    sr.Add(arr[i, j]);
                    /*foreach (int n in sr) Console.WriteLine(n);*/
                    
                } 
                Console.WriteLine("Sum of column {0} IS {1}", i + 1, s);
                s = 0;
                Console.WriteLine();
            }
 
        }
 
        static void Fill(ref int[,] arr)//метод  который заполняет массив
        {
            for (int j = 0; j < arr.GetLength(0); j++)
            {
                for (int i = 0; i < arr.GetLength(1); i++)
                {
                    Console.WriteLine("Enter please {0} column, {1} row", i+1, j+1);
                    arr[i, j] = int.Parse(Console.ReadLine());//зчитуємо                    
                }
            } Console.WriteLine();
 
        }
 
        static void Main(string[] args)
        {
            List<int> sumr = new List<int>();
            List<int> sumc = new List<int>();
            int sum = 0;
            Console.WriteLine("Enter number of rows");
            int row = int.Parse(Console.ReadLine());
            Console.WriteLine("Enter number of culumns");
            int clmn = int.Parse(Console.ReadLine());
            int[,] mtrx = new int[row, clmn];            
            Console.WriteLine();
            Fill(ref mtrx);
            Rows (ref mtrx, sum , sumr);
            Console.WriteLine(sumr);
            Console.ReadKey(true);
        }
    }
Надеюсь я достаточно понятно объяснил свою проблему. Задание я должен сдать в понедельник. Надеюсь на вашу помощь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.12.2010, 23:45
Помогаю со студенческими работами здесь

Поиск в двумерном массиве
Помогите написать программу Условие следующее: Дано массив целых чисел А , который состоит из нулей и единиц. Для заданного значения К...

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

Ошибка в массиве и суммирование
Всем добрый день! Прошу помощи!!:help: Надо создать цикл вида F(r,b), где r=1...n b - массив из 3х элементов, и в этом же цикле...

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

Суммирование классов в массиве
Добрый день прошу помощи или совета реализовать задачку: есть 2 input для ввода данных товара title и price: &lt;div...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru