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

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

Войти
Регистрация
Восстановить пароль
 
Xrust
0 / 0 / 0
Регистрация: 12.04.2009
Сообщений: 9
#1

Квадратная матрица - C++

05.05.2009, 09:48. Просмотров 469. Ответов 2
Метки нет (Все метки)

Сегодня зачет, а я не могу написать следующую программу:
Дана целочисленная квадратная матрица. Определить произведение элементов в тех строках, которые не содержат отрицательных элементов
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.05.2009, 09:48     Квадратная матрица
Посмотрите здесь:

C++ Квадратная матрица N*N
квадратная матрица C++
C++ Квадратная матрица
C++ Квадратная матрица
Квадратная матрица.... C++
Квадратная матрица C++
C++ Квадратная матрица
Квадратная матрица C++
Квадратная матрица C++
C++ Квадратная матрица на С++
C++ [C++] Квадратная матрица

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ISergey
Maniac
Эксперт С++
1346 / 879 / 51
Регистрация: 02.01.2009
Сообщений: 2,643
Записей в блоге: 1
05.05.2009, 10:14     Квадратная матрица #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
#include <iostream>
int main()
{
    const int row = 5;
    const int col = 5;
    int arr[row][col] = {1, 2, 3, 4, 4,
                -1, 2, 3, 4, 5,
                 9, 8, 7, 6, 5,
                -4, 5, 6, 7, 8,
                 1, 1, 1, 1, 1 };
    int res = 1;
 
    for(int i = 0, mul = 1; i < row; ++i){
        for(int j = 0; j < col; ++j)
            mul *= arr[i][j];
        if(mul >= 0)
            res *= mul;
        mul = 1;
    }
 
    std::cout<<"Result: "<<res<<std::endl;
    return 0;
}
Rififi
2336 / 1051 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
05.05.2009, 10:18     Квадратная матрица #3
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
#include <numeric>
#include <functional>
#include <algorithm>
 
// Вспомогательная функция - умножение элементов строки
template <typename T, const size_t N>
T mul(const T (&arr)[N])
{
    return std::find_if(arr, arr+N, std::bind2nd(std::less<T>(), T())) == arr+N ?
        std::accumulate(arr, arr+N, static_cast<T>(1), std::multiplies<T>()) : T();
}
 
// Построчная обработка массива
template <typename T, const size_t Rows, const size_t Cols>
void mul(const T (&arr)[Rows][Cols], T (&result)[Rows])
{
    std::fill_n(result, Rows, T()); // Обнуление результата
    std::transform(arr, arr+Rows, result, mul<T, Cols>);
}
 
int main()
{
    int arr[2][2] = {
                    {2,-3},
                    {4,1}};
    int res[2];
 
    mul(arr, res);
    // res == {0, 4}
 
    return (0);
}
Yandex
Объявления
05.05.2009, 10:18     Квадратная матрица
Ответ Создать тему
Опции темы

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