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

массив - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Массивы (исправить программу) http://www.cyberforum.ru/cpp-beginners/thread420613.html
посмотрите, пожалуйста, прогу. вроде всё правильно, но только почему числа не меняются?? #include <stdio.h> #include <conio.h> #include <iostream> #include <ctime> #include <cstdlib> using namespace std; int main(void) {
C++ Определить или в двумернам массиве есть одинаковые элементы. Помогите пожалуйсто :boredom: C++: Определить или в двумернам массиве есть одинаковые элементы. http://www.cyberforum.ru/cpp-beginners/thread420609.html
C++ Последовательность положительных элементов в массиве
Объявить массив целых чисел и заполнить его случайными значениями. Размер массива и диапазон значений его элементов заданы в Вашем варианте индивидуального задания. В индивидуальных заданиях указано также, какую обработку массива следует произвести. Для всех вариантов задания следует иметь в виду следующее: 0 считается положительным числом, если в задании не оговорен какой-то...
C++ Как написать имя консольного окна из переменной
чтобы поменять имя консоли надо написать system("title ima_okna"); а как вместо тектста ima_okna подставить переменную, system("title "+ima_okna);
C++ перевести на c++ с паскаля http://www.cyberforum.ru/cpp-beginners/thread420590.html
переведите пожалуйста как написать эти строчки на с++ for i:=1 to Length(s) do for j:=length(sl) downto 1 do Добавлено через 13 минут нууууууу
C++ на с++ по теме функции пользователя !!!! Написала программу, но сказали ее усложнить, а я не понимаю К коду этой программы необходимо дописать а-размерность матрицы должна вводиться при выполнении программы; б-само решение задачи должно быть оформлено в виде функции, которой передается матрица и ее размерность. Вот этот код он Заполняет матрицу случайными числами.и разворачивает матрицу на 90градусов по часовой стрелке. Вообщем,... подробнее

Показать сообщение отдельно
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
30.12.2011, 06:37     массив
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
#include <vector>
#include <iterator>
#include <algorithm>
#include <cstdlib>
#include <ctime>
#include <iostream>
#include <numeric>
 
int main()
{
    srand(time(nullptr));
    std::vector<int> v(100);
    std::generate(v.begin(), v.end(), [] { return rand() % 201 - 100; });
    std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    auto l = v.begin(), f = l, first = f, last = l;
    int sum = 0;
    while(true)
    {
        f = std::find_if(l, v.end(), [](int num) { return num >= 0; });
        l = std::find_if(f, v.end(), [](int num) { return num < 0; });
        if(f == v.end())
            break;
        if(f == l - 1)
            continue;
        auto s = std::accumulate(f, l, 0);
        if(s > sum)
        {
            sum = s;
            first = f;
            last = l;
        }
    }
    std::cout << sum << ' ' << first - v.begin() << " - "<< last - v.begin() - 1 <<std::endl;
    return 0;
}
Без C++0x
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
#include <vector>
#include <iterator>
#include <algorithm>
#include <cstdlib>
#include <ctime>
#include <iostream>
#include <numeric>
 
template <class T> T gen() { return rand() % 201 - 100; }
 
template <class T> bool isPositiveOrEqZero(T num) { return num >= 0; }
 
template <class T> bool isNegative(T num) { return num < 0; }
 
int main()
{
    srand(time(NULL));
    std::vector<int> v(100);
    std::generate(v.begin(), v.end(), gen<int>);
    std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    std::vector<int>::iterator l = v.begin(), f = l, first = f, last = l;
    int sum = 0;
    while(true)
    {
        f = std::find_if(l, v.end(), isPositiveOrEqZero<int>);
        l = std::find_if(f, v.end(), isNegative<int>);
        if(f == v.end())
            break;
        if(f == l - 1)
            continue;
        int s = std::accumulate(f, l, 0);
        if(s > sum)
        {
            sum = s;
            first = f;
            last = l;
        }
    }
    std::cout << sum << ' ' << first - v.begin() << " - "<< last - v.begin() - 1 <<std::endl;
    return 0;
}
 
Текущее время: 19:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru