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

Элементы массива - C++

Восстановить пароль Регистрация
 
piople1994
0 / 0 / 0
Регистрация: 12.04.2013
Сообщений: 9
05.06.2013, 21:22     Элементы массива #1
Найти произведение положительных элементов массива, следующих после первого нулевого элемента.Если по какой либо причине вычислить произведение невозможно выдать об этом сообщение.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2013, 21:22     Элементы массива
Посмотрите здесь:

одномерный массив. Все его элементы, не равные нулю, переписать, сохраняя их порядок в начало массива, а нулевые элементы в конец массива in c++ C++
C++ Вывести элементы массива на промежутке [ a,b ], вычислить количество элементов массива, заменить все положительные элементы
Сформировать и вывести на экран новый массив, который будет содержать вначале все элементы массива A(0), затем все элементы массива B(4) C++
C++ Получить массив, расположив в его начале элементы массива A, а затем — элементы массива B
Создать два новых массива, в один из которых поместить положительные элементы массива, а в другой отрицательные и нулевые элементы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Пaтрик
 Аватар для Пaтрик
394 / 387 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
05.06.2013, 21:55     Элементы массива #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
#include <algorithm>
#include <iterator>
#include <iostream>
#include <vector>
#include <numeric>
 
template <typename T>
struct mul_if_positive : public std::binary_function<T, T, T>
{
    T operator () (T arg1, T arg2)
    {
        if (arg2 > 0)
            return arg1 * arg2;
        return arg1;
    }
};
 
int main()
{
    std::vector<int> vector(
        (std::istream_iterator<int>(std::cin)),
        (std::istream_iterator<int>()));
    std::vector<int>::iterator it = std::find(vector.begin(), vector.end(), 0);
    if (it == vector.end())
        std::cout << "Element with zero value not found in vector\n";
    else
        std::cout << std::accumulate(++it, vector.end(), 1, mul_if_positive<int>()) << std::endl;
    return 0;
}
http://ideone.com/PSMdeR
piople1994
0 / 0 / 0
Регистрация: 12.04.2013
Сообщений: 9
05.06.2013, 21:57  [ТС]     Элементы массива #3
А можно эту задачу написать попроще??)) я просто на первом курсе и ещё не сильно знаю с++
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
05.06.2013, 22:11     Элементы массива #4
Пaтрик, массив и вектор всё же не совсем одно и тоже. Вопрос про массив.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <cstdio>
#define NARR 8
int main(){
    int arr[NARR]={3, -1, 1, 0, 2, 1, 3, -5};
    int i;
    int result=1;
    for (i=0; i<NARR && arr[i]; i++);
    if (arr[i] || i==NARR-1)
        printf("result not found\n");
    else{
        for (; i<NARR; i++) 
            if (arr[i]>0) result*=arr[i];
        printf("result is %d\n", result);
    }
  return 0;
}
piople1994
0 / 0 / 0
Регистрация: 12.04.2013
Сообщений: 9
05.06.2013, 22:27  [ТС]     Элементы массива #5
а можно ещё комментарии к циклам и условиям???
Yandex
Объявления
05.06.2013, 22:27     Элементы массива
Ответ Создать тему
Опции темы

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