Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вычислялить кол-во ненулевых элементов матрце С++, Как это описать? 
V
    Опции темы
Tinako
Дата 18.12.2013, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Доброго времени суток) Нужна помощь с матрицей. Сама матрица nxn есть, а как сделать так, чтобы вычислялось количество ненулевых элементов в ней - не знаю.. Помогите, пожалуйста =(
PM MAIL   Вверх
Gluttton
Дата 18.12.2013, 22:51 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

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



Цитата(Tinako @  18.12.2013,  22:44 Найти цитируемый пост)
Доброго времени суток)

И Вам не кашлять!

Цитата(Tinako @  18.12.2013,  22:44 Найти цитируемый пост)
как сделать так, чтобы вычислялось количество ненулевых элементов 


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


--------------------
Слава Україні!
PM MAIL   Вверх
Tinako
Дата 18.12.2013, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Gluttton @ 18.12.2013,  22:51)
Необходимо объявить в глобальном пространстве имен счетчик, который бы описывал количество ненулевых элементов и инициализировать его нулем, затем организовать обход элементов матрицы с помощью вложенных циклов. Глубина вложенности циклов определяется размерностью матрицы. При обходе матрицы необходимо проверять условие на неравенство нулю текущего элемента матрицы, если условие выполняется, то необходимо инкрементировать счетчик.
По завершению обхода, значение счетчика будет соответствовать количеству ненулевых элементов в матрице.

Я извиняюсь за наглость, но не могли бы вы привести пример кода :3..а то я походу..совсем не знаю, как..
PM MAIL   Вверх
Gluttton
Дата 19.12.2013, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

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



Код:
Код

#include <iostream>
#include <stdlib.h>



int main (int argc, char * argv [])
{
    constexpr size_t rowCount {3};
    constexpr size_t colCount {3};
    int matrix [rowCount][colCount] = {
        {1, 0, 1},
        {0, 1, 1},
        {0, 1, 0}
    };

    unsigned int nonZeroItemCount {0u};


    for (size_t i = 0; i < rowCount; ++i) {
        for (size_t j = 0; j < colCount; ++j) {
            if (matrix [i][j]) {
                ++nonZeroItemCount;                                                                                                                                                           
            }                                                                                                                                                                                 
        }                                                                                                                                                                                     
    }                                                                                                                                                                                         
                                                                                                                                                                                              
                                                                                                                                                                                              
    std::cout << nonZeroItemCount << std::endl;                                                                                                                                               
                                                                                                                                                                                              
                                                                                                                                                                                              
    return EXIT_SUCCESS;
}


Компиляция:
Цитата

g++ -std=c++11 matrix.cpp -o matrix


Запуск приложения и вывод результата:
Цитата

gluttton@gluttton:~$ ./matrix 
5



--------------------
Слава Україні!
PM MAIL   Вверх
Tinako
Дата 19.12.2013, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Gluttton @ 19.12.2013,  09:17)
Код:
Код

#include <iostream>
#include <stdlib.h>



int main (int argc, char * argv [])
{
    constexpr size_t rowCount {3};
    constexpr size_t colCount {3};
    int matrix [rowCount][colCount] = {
        {1, 0, 1},
        {0, 1, 1},
        {0, 1, 0}
    };

    unsigned int nonZeroItemCount {0u};


    for (size_t i = 0; i < rowCount; ++i) {
        for (size_t j = 0; j < colCount; ++j) {
            if (matrix [i][j]) {
                ++nonZeroItemCount;                                                                                                                                                           
            }                                                                                                                                                                                 
        }                                                                                                                                                                                     
    }                                                                                                                                                                                         
                                                                                                                                                                                              
                                                                                                                                                                                              
    std::cout << nonZeroItemCount << std::endl;                                                                                                                                               
                                                                                                                                                                                              
                                                                                                                                                                                              
    return EXIT_SUCCESS;
}

Вроде разобралась) Спасибо :3
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


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

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


 




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


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

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