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

Составить процедуру определения суммы и количества элементов, расположенных между минимальным и максимальным элементами массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Создайте структуру, составленную из следующих полей: http://www.cyberforum.ru/cpp-beginners/thread894021.html
Создайте структуру, составленную из следующих полей: первые два поля значение веса 2 тел, а третье поле - расстояние между ними. Эти данные должны вводиться с клавиатуры и программа должна вычислять и выводить на печать силу притяжения между телами по формуле F = G * ml * m2 / (r * r). Заранее спасибо))
C++ Ошибка в рядах Тейлора Помогите найти ошибку в этом задании: адача состоит в проведении программной реализации расчета приблизительного значения функции y, разложив функцию f (x) в ряд Тейлора, при этом необходимо вывести и применить рекуррентное отношение для расчета общей части для каждого слагаемого ряда или его части.Исходными параметрами задач является аргумент функции, изменяется в диапазоне с шагом Xdelta, и... http://www.cyberforum.ru/cpp-beginners/thread894018.html
C++ STL vector запись в файл
Здраствуйте! Такая проблема, есть у меня например vector чисел 1,2,3,4,5 надо записать их в файл. Если записываю так, то выбивает ошибка Vector subscript out of range. Если в цикле сделаю it !=mas.end()-1, то ошибки нету, но записывает в файл только числа 2,3,4,5. В чем проблема помогите пожалуйста. vector<int>::iterator it; it = mas.begin(); ofstream write_file("E://write.txt"); for...
Объяснить задание C++
Доброго времени суток. Получил вот такое задание: "нужно перемножить две случайные матрицы которые не помещаются на 1 процессоре". Я не прошу написать код за меня(хотя я был бы так счастлив :) ), но прошу объяснить мне простым человеческим языком то, что тут написано. Просто не могу понять задание.
C++ Вычислить и распечатать сумму элементов массива, используя указатель и метод доступа через разименование http://www.cyberforum.ru/cpp-beginners/thread894009.html
В программе создайте массив из 10 элемента типа float с произвольными числовыми значениями, инициализировать его именем указатель. Вычислить и распечатать сумму элементов массива, используя указатель и метод доступа через разименование. Называйте темы информативно.
C++ Разработать программу, которая позволит в данном массиве А заменить нулями те его элементы, не удовлетворяющие условию Разработать программу, которая позволит в данном массиве А заменить нулями те его элементы, не удовлетворяющие условию 50 <A (i, j) <= 80. Заранее спасибо) подробнее

Показать сообщение отдельно
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
07.06.2013, 01:51     Составить процедуру определения суммы и количества элементов, расположенных между минимальным и максимальным элементами массива
если по простому
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <iostream>
#include <utility>
#include <algorithm>
#include <random>
#include <vector>
#include <iterator>
#include <cstddef>
#include <string>
 
template <typename T>
void sum_and_amount(typename std::vector<T>::const_iterator beg,
                    typename std::vector<T>::const_iterator end,
                    T &sum, size_t &amount)
{
    sum = amount = 0;
    if (end < beg)
        return;
    while (beg != end)
    {
        sum += *beg;
        amount++;
        ++beg;
    }
}
 
template <typename T>
void print_info(typename std::vector<T>::const_iterator beg,
                typename std::vector<T>::const_iterator end)
{
    auto p = std::minmax_element(beg, end);
    T sum;
    size_t amount;
    sum_and_amount(p.first, p.second, sum, amount);
    std::cout << "Sum: " << sum << "\nAmount: " << amount << std::endl;
}
 
 
int main()
{
    const std::size_t sizeA = 10, sizeB = 20, sizeC = 15;
    std::vector<int> A(sizeA), B(sizeB), C(sizeC);
    std::mt19937 gen {std::random_device()() };
    std::uniform_int_distribution<int> uid(0, 100);
    auto gen_v = [&uid, &gen](std::vector<int> &v)
    {
        std::generate(v.begin(), v.end(), [&uid, &gen]() -> int { return uid(gen); } );
    };
    auto print_v = [](const std::vector<int> &v)
    {
        std::copy(v.cbegin(), v.cend(), std::ostream_iterator<int>(std::cout, " ") );
        std::cout << std::endl;
    };
    auto press_key_to_win = [&gen_v, &print_v](const std::string &name, std::vector<int> &v)
    {
        gen_v(v);
        std::cout << name << ":\n";
        print_v(v);
        print_info<int>(v.cbegin(), v.cend());
    };
 
    press_key_to_win("A", A);
    press_key_to_win("B", B);
    press_key_to_win("C", C);
}
 
Текущее время: 22:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru