Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как Вычислить сумму и количество элементов матрицы, Двумерные массивы 
:(
    Опции темы
AndreSan
Дата 31.5.2009, 18:11 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 29.5.2009

Репутация: нет
Всего: нет



помогите как Вычислить сумму и количество элементов матрицы, находящихся над главной диагональю и на ней.
PM MAIL   Вверх
Ubuntu
Дата 31.5.2009, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 13.5.2009

Репутация: нет
Всего: -2



Если номер столбца совпадает с омером строчки, считай суму.
PM MAIL   Вверх
Экскалупатор
Дата 31.5.2009, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 5
Всего: 24



Код

            int sum = 0;//сумма
            int k = 0;//колличество
            for (int i = 0; i < n; i++)
            {
                for (int j = i; j < n; j++)
                {
                    sum += mass[i, j];
                    k += 1;
                }
            }


mass - массив(матрица)
n - размер матрицы(mass[n,n])
PM MAIL ICQ   Вверх
Raistlin
Дата 31.5.2009, 22:44 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 19.5.2009

Репутация: нет
Всего: нет



Цитата(Ubuntu @  31.5.2009,  20:19 Найти цитируемый пост)
Если номер столбца совпадает с омером строчки, считай суму.

Это сумма элементов только главной диагонали.

Цитата(Экскалупатор @  31.5.2009,  22:41 Найти цитируемый пост)
            int sum = 0;//сумма
            int k = 0;//колличество
            for (int i = 0; i < n; i++)
            {
                for (int j = i; j < n; j++)
                {
                    sum += mass[i, j];
                    k += 1;
                }
            }

Это сумма элементов всей матрицы.

Ну а это - то, что нужно:  smile 

Цитата(AndreSan @  31.5.2009,  18:11 Найти цитируемый пост)
сумму и количество элементов матрицы, находящихся над главной диагональю и на ней.



Код

        private static void MatrixSum()
        {
            int matrixSize = 4;

            //int[,] matrix = new int[matrixSize, matrixSize];
            int[,] matrix = {
                                {1, 1, 1, 1},
                                {0, 1, 1, 1},
                                {0, 0, 1, 1},
                                {0, 0, 0, 1}
                            };

            int sum = 0;
            int count = 0;

            for (int rowIndex = 0; rowIndex < matrixSize; rowIndex++)
            {
                for (int columnIndex = 0; columnIndex < matrixSize; columnIndex++)
                {
                    if (columnIndex - rowIndex >= 0)
                    {
                        sum += matrix[rowIndex, columnIndex];
                        
                        count++;
                    }
                }
            }

            Console.WriteLine("Sum = {0}", sum);
            Console.WriteLine("Count = {0}", count);
            Console.ReadLine();
        }

         

Это сообщение отредактировал(а) Raistlin - 31.5.2009, 22:47
PM MAIL   Вверх
Экскалупатор
Дата 31.5.2009, 23:21 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 5
Всего: 24



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

Добавлено через 1 минуту и 52 секунды
прежде чем утверждать что либо не лучше ли сначала проверить???
PM MAIL ICQ   Вверх
AndreSan
Дата 1.6.2009, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 29.5.2009

Репутация: нет
Всего: нет



Cпасибо всем!
PM MAIL   Вверх
Raistlin
Дата 1.6.2009, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 19.5.2009

Репутация: нет
Всего: нет



Цитата(Экскалупатор @  31.5.2009,  22:41 Найти цитируемый пост)
for (int j = i; j < n; j++)

Извини, ночью все кошки серы  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0465 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.