Форум программистов, компьютерный форум CyberForum.ru

Определите число ненулевых элементов в каждой строке матрицы. - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.84
boliev
0 / 0 / 0
Регистрация: 16.10.2011
Сообщений: 7
27.02.2012, 20:54     Определите число ненулевых элементов в каждой строке матрицы. #1
Дана матрица A(N, M). Определите число ненулевых элементов в каждой строке матрицы.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2012, 20:54     Определите число ненулевых элементов в каждой строке матрицы.
Посмотрите здесь:

C++ Найти сумму элементов в каждой строке матрицы W1
Удалить из матрицы те строки, для которых количество ненулевых элементов больше количества нулевых элементов в строке C++
C++ Сумма полож. элементов в каждой строке матрицы
C++ в каждой строке матрицы F(k,k) элемент, лежащий на главной диагонали, если это простое число, заменить суммой ранее расположенных элементов
C++ Массивы. Определить количество элементов в каждой строке матрицы А, модуль которых равняется порядковому номеру элемента в строке
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ШКІПЕР
 Аватар для ШКІПЕР
93 / 93 / 7
Регистрация: 14.04.2010
Сообщений: 280
Записей в блоге: 9
Завершенные тесты: 1
27.02.2012, 21:08     Определите число ненулевых элементов в каждой строке матрицы. #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
#include <iostream>
using namespace std;
 
 
#define N 9
#define M 9
 
int searchRes(int *A)
{
    int S = 0;
    for (int i=0; i<M; ++i){
        A[i] ? ++S : 0;
    }
    return S;
}
 
void printA(int A[N][M])
{
    for (int i=0; i<N; ++i){
        for (int j=0; j<M; ++j)
            cout<<A[i][j]<<"\t";
        cout<<endl<<endl;
    }
}
 
int main() {
    int A[N][M];
 
    for (int i=0; i<N; ++i)
        for (int j=0; j<M; ++j)
            A[i][j] = rand()%-2;
 
    printA(A);
 
    cout<<"============\n";
 
 
    int S=0;
    for (int i=0; i<N; ++i)
        S+=searchRes(A[i]);
 
    cout<<"Res: "<< S;
 
 
    cin.ignore();
    return EXIT_SUCCESS;
}
boliev
0 / 0 / 0
Регистрация: 16.10.2011
Сообщений: 7
27.02.2012, 21:16  [ТС]     Определите число ненулевых элементов в каждой строке матрицы. #3
спасибо вам большое))

Добавлено через 4 минуты
а с комментариями никак нельзя?))
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5816 / 1214 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
27.02.2012, 21:16     Определите число ненулевых элементов в каждой строке матрицы. #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <algorithm>
#include <iterator>
#include <vector>
#include <cstdlib>
#include <ctime>
 
int main()
{
    srand(time(0));
    const int rows = 8, cols = 6;
    std::vector<std::vector <int> > vec(rows, std::vector <int> (cols, 0));
    std::for_each(vec.begin(), vec.end(), [] (std::vector <int> &tmp)
    {
        std::generate(tmp.begin(), tmp.end(), [] () { return rand()%15; });
        std::copy(tmp.begin(), tmp.end(), std::ostream_iterator <int> (std::cout, " "));
        std::cout<<"\nCount = "<<std::count_if(tmp.begin(), tmp.end(), [] (int num) { return num; })<<std::endl;
        return tmp;
    });
    system("pause");
    return 0;
}
ШКІПЕР
 Аватар для ШКІПЕР
93 / 93 / 7
Регистрация: 14.04.2010
Сообщений: 280
Записей в блоге: 9
Завершенные тесты: 1
27.02.2012, 21:25     Определите число ненулевых элементов в каждой строке матрицы. #5
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
#include <iostream>
 
#define N 9  // наши N
#define M 9  // и M :)
using namespace std;           //пространство имен std 
 
int searchRes(int *A)          //поиск ненулевого 
{                              //элемента в одной строчке массива
    int S = 0;                 //В случае успеха
    for (int i=0; i<M; ++i){   //плюсуем S (+1)
        A[i] ? ++S : 0;
    }
    return S;                  //и в любом случае это возвращаем
}
 
void printA(int A[N][M]) /*вывод массива на консоль, думаю ясно*/
{
    for (int i=0; i<N; ++i){
        for (int j=0; j<M; ++j)
            cout<<A[i][j]<<"\t";
        cout<<endl<<endl;
    }
}
 
int main() {
    int A[N][M];                 //объявили массив А
 
    for (int i=0; i<N; ++i)      //заполнение
        for (int j=0; j<M; ++j)  //массива
            A[i][j] = rand()%-4; //не слишком "рандомными" числами, ну хоть что-то есть :)
 
    printA(A);                   //покажем массив
 
    cout<<"============\n";      //разделитель
 
 
    int S=0;                     //общее количество ненулевых элементов
    
    for (int i=0; i<N; ++i)      //Терь считаем в каждой строчке 
        S+=searchRes(A[i]);      //массива количество ненулевых элементов и 
                                 //добавляем результат к общей сумме
 
    cout<<"Res: "<< S;           //пишем результат :)
 
    cin.ignore();                //Держим экран.
    return EXIT_SUCCESS;         //Говорим ОС что все отлично, едем дальше.
}
boliev
0 / 0 / 0
Регистрация: 16.10.2011
Сообщений: 7
27.02.2012, 21:26  [ТС]     Определите число ненулевых элементов в каждой строке матрицы. #6
спсибо большое!!))
Dekio
27.02.2012, 21:26
  #7

Не по теме:

Цитата Сообщение от ШКІПЕР Посмотреть сообщение
A[i] ? ++S : 0;
это понты чтоль?
C++
1
2
if(a[i])
  S++;

ШКІПЕР
 Аватар для ШКІПЕР
93 / 93 / 7
Регистрация: 14.04.2010
Сообщений: 280
Записей в блоге: 9
Завершенные тесты: 1
27.02.2012, 21:30     Определите число ненулевых элементов в каждой строке матрицы. #8
Dekio, зря Вы так молодежь
18:14: error: lambda return type can only be deduced when the return statement is the only statement in the function body [-pedantic]


Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от Dekio Посмотреть сообщение
это понты чтоль?
Нет. С чего Вы решили ? Как по мне - тривиально очевидная запись.

Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5816 / 1214 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
27.02.2012, 21:30     Определите число ненулевых элементов в каждой строке матрицы. #9
ШКІПЕР, не стану вас заставлять обновить компилятор, возьмем онлайн с поддержкой С++ 11

http://ideone.com/XoYtq
ШКІПЕР
 Аватар для ШКІПЕР
93 / 93 / 7
Регистрация: 14.04.2010
Сообщений: 280
Записей в блоге: 9
Завершенные тесты: 1
27.02.2012, 21:33     Определите число ненулевых элементов в каждой строке матрицы. #10
Цитата Сообщение от Dekio Посмотреть сообщение
возьмем онлайн с поддержкой С++ 11
Взяли: http://liveworkspace.org/code/31a1b1...3343967be42831
isaak
101 / 38 / 9
Регистрация: 17.10.2010
Сообщений: 634
27.02.2012, 21:39     Определите число ненулевых элементов в каждой строке матрицы. #11
Dekio компилятор выдает:

1 IntelliSense: the body of a value-returning lambda with no explicit return type must be a single return statement c:\users\администратор\documents\visual studio 2010\projects\c++\console\p1615\no zero elements\no zero elements\no zero elements.cpp 14 2 No zero elements
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5816 / 1214 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
27.02.2012, 21:40     Определите число ненулевых элементов в каждой строке матрицы. #12
ШКІПЕР, старый вариант кода, считает нулевые элементы.
Я компилировал под MinGW, что на liveworkspace не знаю

Добавлено через 24 секунды
isaak, и правильно, компилятор обновите
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
27.02.2012, 21:41     Определите число ненулевых элементов в каждой строке матрицы. #13
g++, полет нормальный.
isaak
101 / 38 / 9
Регистрация: 17.10.2010
Сообщений: 634
27.02.2012, 21:42     Определите число ненулевых элементов в каждой строке матрицы. #14
Dekio откуда и как?
ШКІПЕР
 Аватар для ШКІПЕР
93 / 93 / 7
Регистрация: 14.04.2010
Сообщений: 280
Записей в блоге: 9
Завершенные тесты: 1
27.02.2012, 21:44     Определите число ненулевых элементов в каждой строке матрицы. #15
Цитата Сообщение от Dekio Посмотреть сообщение
компилировал под MinGW, что на liveworkspace не знаю
Это анекдот такой, да ? Ведь выше есть ссылка на тот самый liveworkspace с ошибкой.
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5816 / 1214 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
27.02.2012, 21:45     Определите число ненулевых элементов в каждой строке матрицы. #16
Сборки MinGW(GCC-win32/win64) от niXman

Добавлено через 1 минуту
Цитата Сообщение от ШКІПЕР Посмотреть сообщение
Это анекдот такой, да ?
Ваш код сплошной анекдот, да?

Мой код работает и так как надо, ещё вопросы?
isaak
101 / 38 / 9
Регистрация: 17.10.2010
Сообщений: 634
27.02.2012, 21:45     Определите число ненулевых элементов в каждой строке матрицы. #17
А на visual studio 2010 подойдет?
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
27.02.2012, 21:48     Определите число ненулевых элементов в каждой строке матрицы. #18
Вот так на lws компилится
http://liveworkspace.org/code/b524b6...5fc90a8af9962d
ШКІПЕР
 Аватар для ШКІПЕР
93 / 93 / 7
Регистрация: 14.04.2010
Сообщений: 280
Записей в блоге: 9
Завершенные тесты: 1
27.02.2012, 21:53     Определите число ненулевых элементов в каждой строке матрицы. #19
Цитата Сообщение от Dekio Посмотреть сообщение
Ваш код сплошной анекдот, да?
Это вопрос ? Вы против ?

Цитата Сообщение от Dekio Посмотреть сообщение
Мой код работает и так как надо, ещё вопросы?
1. Работает только у Вас и еще в некоторых местах.
2. При этом падает на компиляторе, явно заточеным под Ваш код.
3. Это раздел, если не ошибаюсь, называется "Форум С/С++ для начинающих", так что еще нужно поразмышлять, где понты.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2012, 21:57     Определите число ненулевых элементов в каждой строке матрицы.
Еще ссылки по теме:

Посчитать количество четных элементов в каждой строке матрицы C++
Определите, есть ли среди элементов заданной матрицы число А C++
Выполнить сортировку элементов в каждой строке матрицы по возрастанию C++

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

Или воспользуйтесь поиском по форуму:
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5816 / 1214 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
27.02.2012, 21:57     Определите число ненулевых элементов в каждой строке матрицы. #20
Цитата Сообщение от ШКІПЕР Посмотреть сообщение
1. Работает только у Вас и еще в некоторых местах.
Написан по стандарту языка.

Цитата Сообщение от ШКІПЕР Посмотреть сообщение
При этом падает на компиляторе, явно заточеным под Ваш код.
Доказательства? Пустые слова. Тип возвращаемого значения может быть указан явно, а может не быть. Читаем, ещё раз, стандарт

Цитата Сообщение от ШКІПЕР Посмотреть сообщение
3. Это раздел, если не ошибаюсь, называется "Форум С/С++ для начинающих", так что еще нужно поразмышлять, где понты.
Решение простое и небольшое по размеру. Многим полезно подумать как работает STL и многие хотят видеть реальный STL, а не ваши 7 циклов, где 1 хватит. Добавьте себе ещё 3 и будет 10. Советую не забыть также добавить штук 5 лишних скобок, ведь новичек для новичка пишет..
Yandex
Объявления
27.02.2012, 21:57     Определите число ненулевых элементов в каждой строке матрицы.
Закрытая тема Создать тему
Опции темы

Текущее время: 01:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru