С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Матрица, Произведение элементов в тех строках,который не содержат отрицательных элементов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ перевод из паксаля в с++ http://www.cyberforum.ru/cpp-beginners/thread185773.html
люди помогите пожалуйста! сдача скоро. uses crt; var n,x1,y1,x2,y2,k:integer; begin clrscr; writeln('Наименьшее число, представимое двумя различными способами'); writeln(' в виде суммы...
C++ fprintf fprintf Вопрос - данная ф-ция перезаписывает весь файл? То есть сначала очищает, а после записывает или же добавляет запись к концу? http://www.cyberforum.ru/cpp-beginners/thread185769.html
C++ Циклический алгоритм (цикл с параметром - FOR )
Здравствуйте. Вот у меня такая задача но я не знаю как задается прогрессия Помогите пожалуйста. Для геометрической прогрессии 2, 6, 18, 54, 162 ... определить первые n членов этой прогрессии.
C++ Хранение в контейнере deque целых чисел и проверка основных операций
Написала код: #include "stdafx.h" #include <iostream> #include <deque> using namespace std; void show (const char *str, const deque<int> &Dq) { cout << str << ":" << endl;
C++ Подсчитать количество символов в самой длинной группе. http://www.cyberforum.ru/cpp-beginners/thread185746.html
Дана строка, состоящая из групп нулей и единиц. Подсчитать количество символов в самой длинной группе. Помогите, пожалуйста, а то что-то ничего не получается((( вот такой мой вариант int...
C++ Вычисление Sinx/x разложением в ряд Всем доброго время суток. Вторые сутки бьюсь, задали написать на C++ программу вычисление Sinx/x разложением в ряд: Sinx/x = 1 – (x^2)/3! + (x^4)/5! + … = ∑((-1)^n * x^2n)/(2n+1)! Я сделал по... подробнее

Показать сообщение отдельно
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
03.11.2010, 18:42
C++
1
2
3
4
5
6
7
8
9
10
11
//Arr - твоя матрица. Arr[i] - строка матрицы. 
//Arr[i] - начало строки, Arr[i]+N - конец строки, N - кол-во столбцов в строке
//count_if подсчитывает элементы подходящие под предикат
//в данном случае предикат - std::less<int>(), 0 - считает элементы меньше нуля
//если их нет
if(std::count_if(Arr[i], Arr[i]+N, std::bind2nd(std::less<int>(), 0))==0)
    //Считаем произведение стандартным алгоритмом accumulate
    //std::multiplies<int>() - функтор произведения
    //параметр 1 - с чего начинаем умножать. Здесь мы начинаем умножать с 1
    //и выводим это на экран
    std::cout<<std::accumulate(Arr[i], Arr[i]+N, 1, std::multiplies<int>())<<'\n';
Можно еще по другому.
C++
1
2
3
4
//find_if ищем элемент. В данном случае меньше нуля. Если не найдено
if(std::find_if(Arr[i], Arr[i]+N, std::bind2nd(std::less<int>(), 0))==Arr[i]+N)
     //Ищем произведение как и в первом случае.
     std::cout<<std::accumulate(Arr[i], Arr[i]+N, 1, std::multiplies<int>())<<'\n';
Соответственно нужен только один цикл в обоих случаях.
C++
1
for(int i=0; i<M; ++i)// M - кол-во строк в матрице
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.