Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.55/20: Рейтинг темы: голосов - 20, средняя оценка - 4.55
boliev
0 / 0 / 0
Регистрация: 16.10.2011
Сообщений: 7
1

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

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

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

Определить количество ненулевых элементов в каждой нечетной строке матрицы
Определить количество ненулевых элементов в каждой нечетной строке матрицы G (4,4). Вывести...

Найти суммы произведений ненулевых цифр элементов каждой строки матрицы
Дана матрица А(n,n) Найти суммы произведений ненулевых цифр элементов каждой строки матрицы

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

Массивы. Определить количество элементов в каждой строке матрицы А, модуль которых равняется порядковому номеру элемента в строке
дано матрицу А размером 4х5. определить количество элементов в каждой строке матрицы А, модуль...

Определите, есть ли среди элементов заданной матрицы число А
3. Определите есть ли в данном двумерном массиве число А среди элементов массива.

29
ШКІПЕР
96 / 96 / 22
Регистрация: 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;
}
2
boliev
0 / 0 / 0
Регистрация: 16.10.2011
Сообщений: 7
27.02.2012, 21:16  [ТС] 3
спасибо вам большое))

Добавлено через 4 минуты
а с комментариями никак нельзя?))
0
Dekio
Фрилансер
Эксперт С++
5839 / 1220 / 499
Регистрация: 23.11.2010
Сообщений: 3,377
Записей в блоге: 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;
}
0
ШКІПЕР
96 / 96 / 22
Регистрация: 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;         //Говорим ОС что все отлично, едем дальше.
}
1
boliev
0 / 0 / 0
Регистрация: 16.10.2011
Сообщений: 7
27.02.2012, 21:26  [ТС] 6
спсибо большое!!))
0
Dekio
27.02.2012, 21:26
  #7

Не по теме:

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

0
ШКІПЕР
96 / 96 / 22
Регистрация: 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 Посмотреть сообщение
это понты чтоль?
Нет. С чего Вы решили ? Как по мне - тривиально очевидная запись. :)

0
Dekio
Фрилансер
Эксперт С++
5839 / 1220 / 499
Регистрация: 23.11.2010
Сообщений: 3,377
Записей в блоге: 1
27.02.2012, 21:30 9
ШКІПЕР, не стану вас заставлять обновить компилятор, возьмем онлайн с поддержкой С++ 11

http://ideone.com/XoYtq
0
ШКІПЕР
96 / 96 / 22
Регистрация: 14.04.2010
Сообщений: 280
Записей в блоге: 9
Завершенные тесты: 1
27.02.2012, 21:33 10
Цитата Сообщение от Dekio Посмотреть сообщение
возьмем онлайн с поддержкой С++ 11
Взяли: http://liveworkspace.org/code/31a1b13ea396ba68dd3343967be42831
0
isaak
117 / 53 / 20
Регистрация: 17.10.2010
Сообщений: 755
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
0
Dekio
Фрилансер
Эксперт С++
5839 / 1220 / 499
Регистрация: 23.11.2010
Сообщений: 3,377
Записей в блоге: 1
27.02.2012, 21:40 12
ШКІПЕР, старый вариант кода, считает нулевые элементы.
Я компилировал под MinGW, что на liveworkspace не знаю

Добавлено через 24 секунды
isaak, и правильно, компилятор обновите
0
soon
2546 / 1311 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
27.02.2012, 21:41 13
g++, полет нормальный.
1
isaak
117 / 53 / 20
Регистрация: 17.10.2010
Сообщений: 755
27.02.2012, 21:42 14
Dekio откуда и как?
0
ШКІПЕР
96 / 96 / 22
Регистрация: 14.04.2010
Сообщений: 280
Записей в блоге: 9
Завершенные тесты: 1
27.02.2012, 21:44 15
Цитата Сообщение от Dekio Посмотреть сообщение
компилировал под MinGW, что на liveworkspace не знаю
Это анекдот такой, да ? Ведь выше есть ссылка на тот самый liveworkspace с ошибкой.
0
Dekio
Фрилансер
Эксперт С++
5839 / 1220 / 499
Регистрация: 23.11.2010
Сообщений: 3,377
Записей в блоге: 1
27.02.2012, 21:45 16
Сборки MinGW(GCC-win32/win64) от niXman

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

Мой код работает и так как надо, ещё вопросы?
0
isaak
117 / 53 / 20
Регистрация: 17.10.2010
Сообщений: 755
27.02.2012, 21:45 17
А на visual studio 2010 подойдет?
0
soon
2546 / 1311 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
27.02.2012, 21:48 18
Вот так на lws компилится
http://liveworkspace.org/code/b524b6d6672f3645b25fc90a8af9962d
1
ШКІПЕР
96 / 96 / 22
Регистрация: 14.04.2010
Сообщений: 280
Записей в блоге: 9
Завершенные тесты: 1
27.02.2012, 21:53 19
Цитата Сообщение от Dekio Посмотреть сообщение
Ваш код сплошной анекдот, да?
Это вопрос ? Вы против ?

Цитата Сообщение от Dekio Посмотреть сообщение
Мой код работает и так как надо, ещё вопросы?
1. Работает только у Вас и еще в некоторых местах.
2. При этом падает на компиляторе, явно заточеным под Ваш код.
3. Это раздел, если не ошибаюсь, называется "Форум С/С++ для начинающих", так что еще нужно поразмышлять, где понты.
0
Dekio
Фрилансер
Эксперт С++
5839 / 1220 / 499
Регистрация: 23.11.2010
Сообщений: 3,377
Записей в блоге: 1
27.02.2012, 21:57 20
Цитата Сообщение от ШКІПЕР Посмотреть сообщение
1. Работает только у Вас и еще в некоторых местах.
Написан по стандарту языка.

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

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

В каждой строке матрицы найти количество элементов, меньших среднего арифметического элементов строки
Дана матрица размера MxN. В каждой ее строке найти количество элементов, меньших среднего...

Найти суммы элементов в каждой строке матрицы
дана матрица m*n. найти суммы элементов в каждой строке матрицы, для чего использовать функцию,...

Подсчитать сумму элементов в каждой строке матрицы
Создайте двумерный массив 5*5. Заполните его случайными числами, выведите ваш массив на экран,...


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

Или воспользуйтесь поиском по форуму:
20
Закрытая тема Создать тему
Опции темы

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