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

Заполнение двумерного массива, сумма строк и столбцов

22.01.2017, 08:51. Показов 7561. Ответов 1

Author24 — интернет-сервис помощи студентам
Здравствуйте, решаю всякое на сайтах по плюсам, вот тут додуматься не могу, как реализовать все это через классы, структурно то все получилось, но чую, что постоянно повторяющийся цикл for можно как то методом реализовать.

Собственно задача:
Объявить двумерный массив и заполнить его построчно с клавиатуры. После заполнения — показать заполненную матрицу на экран и посчитать сумму элементов отдельно в каждом столбце и каждой строке.
Мое решение:
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
using System;
 
class myMass
{
    static void Main()
    {
        int i = 0;
        int j = 0;
        int summa = 0;
        Console.Write("Введите количество строк в матрице: ");
        int stroki = int.Parse(Console.ReadLine());
        Console.Write("Введите количество столбцов в матрице: ");
        int stolbi = int.Parse(Console.ReadLine());
        int[,] myMassiv = new int[stroki, stolbi];
        //заполнение массива построчно
        
        for (i = 0; i < stroki; i++)
        {
            for ( j = 0; j < stolbi; j++)
            {
                Console.Write("Введите значение {0} строки {1} столбца: ", i + 1, j + 1);
                myMassiv[i, j] = int.Parse(Console.ReadLine());
            }
        }
 
        for (i = 0; i < stroki; i++)
        {
            for (j = 0; j < stolbi; j++)
            {
                Console.Write("{0}\t", myMassiv[i,j]);
            }
            Console.WriteLine("\n"); 
        }
 
        
        for (i = 0; i < stroki;i++)
        {
            for (j = 0; j < stolbi; j++) summa += myMassiv[i,j];
            Console.WriteLine("Сумма элементов в строке {0} равна {1}",i + 1, summa);
            summa = 0;
        }
        for (j = 0; j < stolbi; j++)
        {
            for (i = 0; i < stroki; i++) summa += myMassiv[i, j];
            Console.WriteLine("Сумма элементов в столбце {0} равна {1}", j + 1, summa);
            summa = 0;
        }
        Console.ReadKey();
    }
}
PS. Учусь по Шилдту, только прошел введение в классы. Критика приветствуется
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.01.2017, 08:51
Ответы с готовыми решениями:

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

Не получается заполнение двумерного массива случайными числами с указанием количества строк и столбцов.
Помогите исправить что не так: #include&lt;iostream.h&gt; #include&lt;math.h&gt; #include&lt;conio.h&gt; void...

Сумма столбцов двумерного массива
почему не выводит сумму?( #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; int main...

Сумма столбцов двумерного массива
почему не выводит сумму?( #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; int main...

1
671 / 217 / 88
Регистрация: 21.07.2016
Сообщений: 1,036
Записей в блоге: 2
22.01.2017, 14:59 2
Rows count: 2
Columns count: 3
Value for matrix[0, 0]: 1
Value for matrix[0, 1]: 2
Value for matrix[0, 2]: 3

Value for matrix[1, 0]: 4
Value for matrix[1, 1]: 5
Value for matrix[1, 2]: 6

Your matrix:
1 2 3
4 5 6

sum(ROW[0]) = 6
sum(ROW[1]) = 15

sum(COL[0]) = 5
sum(COL[1]) = 7
sum(COL[2]) = 9

Для продолжения нажмите любую клавишу . . .
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
using System;
using System.Linq;
using System.Text;
using System.Collections.Generic;
using System.Text.RegularExpressions;
 
namespace csharp_cmd
{
    class Program
    {
        static void Print(int[] matrix)
        {
            for (int i = 0; i < matrix.GetLength(0); ++i)
            {
                Console.Write(matrix[i] + " ");
            }
            Console.WriteLine();
        }
        static void Print(int[,] matrix)
        {
            for (int i = 0; i < matrix.GetLength(0); ++i)
            {
                for (int j = 0; j < matrix.GetLength(1); ++j)
                    Console.Write(matrix[i, j] + " ");
                Console.WriteLine();
            }
            Console.WriteLine();
        }
        static void Fill(int[,] matrix)
        {
            for (int i = 0; i < matrix.GetLength(0); ++i)
            {
                for (int j = 0; j < matrix.GetLength(1); ++j)
                {
                    Console.Write("Value for matrix[{0}, {1}]: ", i, j);
                    matrix[i, j] = Convert.ToInt32(Console.ReadLine());
                }
                Console.WriteLine();
            }
        }
 
        enum SUM_FLAG { ROW, COL }
        static void Display(int[] matrix, SUM_FLAG flag)
        {
            for (int i = 0; i < matrix.GetLength(0); ++i)
            {
                Console.WriteLine("sum({0}[{1}]) = {2}", flag, i, matrix[i]);
            }
            Console.WriteLine();
        }
        static void Accumulate(int[,] matrix, int[] result, SUM_FLAG flag)
        {
            if (flag == SUM_FLAG.ROW)
            {
                for (int i = 0; i < matrix.GetLength(0); ++i)
                {
                    for (int j = 0; j < matrix.GetLength(1); ++j)
                    {
                        result[i] += matrix[i, j];
                    }
                }
            }
            else
            {
                for (int i = 0; i < matrix.GetLength(1); ++i)
                {
                    for (int j = 0; j < matrix.GetLength(0); ++j)
                    {
                        result[i] += matrix[j, i];
                    }
                }
            }
        }
 
        /*
         * Объявить двумерный массив
         * и заполнить его построчно с клавиатуры.
         * После заполнения — показать заполненную матрицу на экран
         * и посчитать сумму элементов отдельно в каждом столбце и каждой строке.
         */
        public static void Main(string[] args)
        {
            int rows, cols;
 
            Console.Write("Rows count: ");
            int.TryParse(Console.ReadLine(), out rows);
 
            Console.Write("Columns count: ");
            int.TryParse(Console.ReadLine(), out cols);
 
            int[,] matrix = new int[rows, cols];
            Fill(matrix);
 
            Console.WriteLine("Your matrix: ");
            Print(matrix);
 
            int[] sum_rows = new int[matrix.GetLength(0)];
            int[] sum_cols = new int[matrix.GetLength(1)];
 
            Accumulate(matrix, sum_rows, SUM_FLAG.ROW);
            Display(sum_rows, SUM_FLAG.ROW);
 
            Accumulate(matrix, sum_cols, SUM_FLAG.COL);
            Display(sum_cols, SUM_FLAG.COL);
        }
    }
}
0
22.01.2017, 14:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.01.2017, 14:59
Помогаю со студенческими работами здесь

Не выводится сумма столбцов двумерного массива
почему она не работает?? все ж правильно вроде.. P.s^ программа должна выводить сумму столбцов...

Исключение строк и столбцов двумерного массива
Задание: Исключить k-столбец и n-строку из двумерного массива. Как это реализовать? Что нужно...

Перестановка местами столбцов и строк двумерного массива
Задача такая - путем перестановки столбцов и строк в двумерном массиве надо сделать так, чтобы...

Вычислить сумму строк и столбцов двумерного массива
Требуется вычислить сумму строк и столбцов, при вводе размера матрицы 10*11 программа считает...

Ввод двумерного числового массива из 4 строк и 3 столбцов
Sub massiv() Dim a(1 To 4, 1 To 3) As Integer m = InputBox(&quot;Введите количество строк&quot;) n =...

Задачи на удаление строк и столбцов двумерного массива
1. Удалить из массива все столбцы, в которых встречаются ровно два минимальных элемента. 2....


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

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