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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.84
boliev
0 / 0 / 0
Регистрация: 16.10.2011
Сообщений: 7
#1

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

27.02.2012, 20:54. Просмотров 3304. Ответов 29
Метки нет (Все метки)

Дана матрица A(N, M). Определите число ненулевых элементов в каждой строке матрицы.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2012, 20:54     Определите число ненулевых элементов в каждой строке матрицы.
Посмотрите здесь:
Определить количество ненулевых элементов в каждой нечетной строке матрицы C++
Удалить из матрицы те строки, для которых количество ненулевых элементов больше количества нулевых элементов в строке C++
C++ Массивы. Определить количество элементов в каждой строке матрицы А, модуль которых равняется порядковому номеру элемента в строке
Определите, есть ли среди элементов заданной матрицы число А C++
В каждой строке матрицы найти количество элементов, меньших среднего арифметического элементов строки C++
Найти суммы элементов в каждой строке матрицы C++
Подсчитать сумму элементов в каждой строке матрицы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ШКІПЕР
94 / 94 / 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
Фрилансер
Эксперт С++
5837 / 1218 / 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;
}
ШКІПЕР
94 / 94 / 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++;

ШКІПЕР
94 / 94 / 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
Фрилансер
Эксперт С++
5837 / 1218 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
27.02.2012, 21:30     Определите число ненулевых элементов в каждой строке матрицы. #9
ШКІПЕР, не стану вас заставлять обновить компилятор, возьмем онлайн с поддержкой С++ 11

http://ideone.com/XoYtq
ШКІПЕР
94 / 94 / 7
Регистрация: 14.04.2010
Сообщений: 280
Записей в блоге: 9
Завершенные тесты: 1
27.02.2012, 21:33     Определите число ненулевых элементов в каждой строке матрицы. #10
Цитата Сообщение от Dekio Посмотреть сообщение
возьмем онлайн с поддержкой С++ 11
Взяли: http://liveworkspace.org/code/31a1b1...3343967be42831
isaak
102 / 39 / 9
Регистрация: 17.10.2010
Сообщений: 658
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
Фрилансер
Эксперт С++
5837 / 1218 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
27.02.2012, 21:40     Определите число ненулевых элементов в каждой строке матрицы. #12
ШКІПЕР, старый вариант кода, считает нулевые элементы.
Я компилировал под MinGW, что на liveworkspace не знаю

Добавлено через 24 секунды
isaak, и правильно, компилятор обновите
soon
2540 / 1305 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
27.02.2012, 21:41     Определите число ненулевых элементов в каждой строке матрицы. #13
g++, полет нормальный.
isaak
102 / 39 / 9
Регистрация: 17.10.2010
Сообщений: 658
27.02.2012, 21:42     Определите число ненулевых элементов в каждой строке матрицы. #14
Dekio откуда и как?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2012, 21:44     Определите число ненулевых элементов в каждой строке матрицы.
Еще ссылки по теме:
C++ Посчитать сумму элементов в каждой строке матрицы
C++ Сумма полож. элементов в каждой строке матрицы
C++ Найти сумму элементов в каждой строке матрицы W1
C++ В каждой строке матрицы F(k,k) элемент, лежащий на главной диагонали, если это простое число
Вычислить количество отрицательных элементов в каждой строке матрицы C++

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

Или воспользуйтесь поиском по форуму:
ШКІПЕР
94 / 94 / 7
Регистрация: 14.04.2010
Сообщений: 280
Записей в блоге: 9
Завершенные тесты: 1
27.02.2012, 21:44     Определите число ненулевых элементов в каждой строке матрицы. #15
Цитата Сообщение от Dekio Посмотреть сообщение
компилировал под MinGW, что на liveworkspace не знаю
Это анекдот такой, да ? Ведь выше есть ссылка на тот самый liveworkspace с ошибкой.
Yandex
Объявления
27.02.2012, 21:44     Определите число ненулевых элементов в каждой строке матрицы.
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru