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

В одномерном целочисленном массиве (размер массива (не больше 20) и значения его элементов вводить с клавиатуры) вычислить: - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перевод из десятичной в двоичную http://www.cyberforum.ru/cpp-beginners/thread1078501.html
Имеется рабочая программа, но загвоздка в том, что выдает значение наоборот, т.е. если ввести число 14, то программа выдает 0111, хотя правильно 1110, можно ли "повернуть" как-нибудь ответ? ...
C++ операция присваивания Столкнулся с глупой проблемой, может кто объяснить, как в таком случае делается присваивание и в чем у меня ошибка? int a=1, b=2, c=3, d=4, e=5; (a=(b=c=d)=e)=b+a найти значения a, b, c, d, e я... http://www.cyberforum.ru/cpp-beginners/thread1078497.html
C++ Как вернуть значение результат работы функции в переменную?
Как вернуть значение результат работы функции в переменную? К примеру { URLDownloadTofile(1,2,3,4) } Возвращенное значение вернуть в переменную?
Зашифровать текст "Hello people!" в символы в Visual C++. C++
Добрый день, мне нужна помощь, надо зашифровать текст "Hello people!" в символы в Visual C++.
C++ Продумать и задать входные данные так, чтобы был 4-5 альтернатив http://www.cyberforum.ru/cpp-beginners/thread1078482.html
составить программу для решения задачи, используя IF. Продумать и задать входные данные так, чтобы был 4-5 альтернатив. Ввести номер студента. Ввести его фамилию и инициалы.
C++ Количество подряд идущих отрицательных элементов Задание простое, просто хочу по-нормальному его растолковать. Дается целочисленный массив из 30 элементов, нужно подсчитать максимальное количество подряд идущих отрицательных элементов. Вот... подробнее

Показать сообщение отдельно
cooller
565 / 533 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
22.01.2014, 16:34
Цитата Сообщение от Andrey027 Посмотреть сообщение
1. Произведение элементов массива, расположенных между максимальным и минимальным элементами.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream>
#include<numeric>
#include<algorithm>
#include <vector>
#include<iterator>
#include<utility>
int main()
{
    std::vector <int> vec = {3,6,2,-1,6,3,7,10,4,2,6};
    std::copy(vec.begin(),vec.end(),std::ostream_iterator<int>(std::cout," "));
    auto MinMax = std::minmax_element(vec.begin(),vec.end());
    std::cout<<"\nProduct between the minimum and maximum elements:"
             <<std::accumulate(MinMax.first+1,MinMax.second,1, [] (int P,int CurEl)->int
    {
        P*=CurEl;
        return P;
    });
    return 0;
}
Добавлено через 54 минуты
Andrey027, Вот некоторые примеры решения без STL. Остальные сделаешь по аналогии.
Цитата Сообщение от Andrey027 Посмотреть сообщение
Сумму элементов массива, расположенных между первым и последним нулевыми элементами.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int SumBetweenZero(int *mas,int N)
{
    size_t positionZeroFirst(0);
    size_t positionZeroLast(0);
    for(int i=0; i<N; i++)
        if(mas[i]==0)
        {
            positionZeroFirst = i;
            break;
        }
    for(int i=0; i<N; i++)
        if(mas[i]==0)
            positionZeroLast = i;
    int sum(0);
    for(int i=positionZeroFirst + 1; i<positionZeroLast; i++)
        sum+=mas[i];
    return sum;
}
Цитата Сообщение от Andrey027 Посмотреть сообщение
Сумму элементов массива, расположенных до последнего положительного элемента.
C++
1
2
3
4
5
6
7
8
9
10
int SumToLastPositive(int *mas,int N)
{
    size_t PositionLastPositiveElement(0);
    for(int i=0; i<N; i++)
        PositionLastPositiveElement = mas[i]>0?mas[i]:PositionLastPositiveElement;
    int sum(0);
    for(int i=0; i<PositionLastPositiveElement; i++)
        sum+=mas[i];
    return sum;
}
Цитата Сообщение от Andrey027 Посмотреть сообщение
Сумму элементов массива, расположенных между первым и последним положительными элементами.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int SumBetweenPositive(int *mas,int N)
{
    size_t positionFirst(0);
    size_t positionLast(0);
    for(int i=0; i<N; i++)
        if(mas[i]>0)
        {
            positionFirst = i;
            break;
        }
    for(int i=0; i<N; i++)
        if(mas[i]>0)
            positionLast = i;
    int sum(0);
    for(int i=positionFirst + 1; i<positionLast; i++)
        sum+=mas[i];
    return sum;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru