Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 07.05.2012
Сообщений: 34

последовательность (1+R)/(1+S) под DevC++

22.05.2012, 21:54. Показов 2297. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Даны n, последовательность n x , x ,...x 1 2 . Получить (1+R)/(1+S), где R – сумма тех членов
последовательности, которые не превосходят 1, а S – сумма членов, больших 1. Использовать динамические
массивы.
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
#include <iostream>
#include <algorithm>
#include <iterator>
 
int main()
{
    const int n = 10;
    int arr[n] = {-5, 2, 5, -1, 4, 2, 4, 0, -1, 10}, Rn, Sn, *R, *S;
    std::copy(arr, arr + n, std::ostream_iterator<int>(std::cout, " ")); 
    Rn = std::count_if(arr, arr + n, [](const int value) {return value <=1; } );
    Sn = n - Rn;
    R = new int[Rn]; 
    S = new int[Sn];
    Rn = Sn = 0; 
    std::for_each(arr, arr + n, [R, &Rn, S, &Sn](const int value) 
        {if (value <=1) R[Rn++] = value; else S[Sn++] = value; } );
    std::cout<< std::endl;
    std::copy(R, R + Rn, std::ostream_iterator<int>(std::cout, " "));  
    std::cout<< std::endl;
    std::copy(S, S + Sn, std::ostream_iterator<int>(std::cout, " "));  
    std::cout<< std::endl<< "(1 + R)/(1 + S) = "
             << (double) (1 + std::accumulate(R, R + Rn, 0) ) / (1 + std::accumulate(S, S + Sn, 0) );
    delete []R;
    delete []S; 
    return 0;
}
------------------------------------------

не компилирует
ошибка в строчке
C++
1
std::copy(arr, arr + n, std::ostream_iterator<int>(std::cout, " "));
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.05.2012, 21:54
Ответы с готовыми решениями:

Графическая консоль в devc++ постоянно грузит и не откликается на действия в devc++ пишу на си с использованием graphics
#include&lt;conio.h&gt; #include&lt;graphics.h&gt; void draw(int x, int y, int color) { setfillstyle(1, color); bar(x,y,x+20,y+20); } ...

DevC++
здрасти всем, народ у меня один и тот же код на разных компиляторах делает разные вещи, это нормально(DevC++ vs VS 2008)? да и как в...

си и DevC++
Всем привет! Проблема в следующем: Есть код: #include &lt;graphics.h&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include...

30
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
22.05.2012, 22:03
Какой код ошибки?
В LWS все нормально http://liveworkspace.org/code/... 0a3e851dd5

P.S. узнаю свой код
0
0 / 0 / 0
Регистрация: 07.05.2012
Сообщений: 34
22.05.2012, 22:07  [ТС]
MrGluck, ругань на эту строчку
Rn = std::count_if(arr, arr + n, [](const int value) {return value <=1; } );

ошибка в следующем
`accumulate' is not a member of `std'
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
22.05.2012, 22:27
Цитата Сообщение от e73t4ph Посмотреть сообщение
MrGluck, ругань на эту строчку
Rn = std::count_if(arr, arr + n, [](const int value) {return value <=1; } );

ошибка в следующем
`accumulate' is not a member of `std'
Компилятор Dev? Он не поддерживает лямбда-функции
0
0 / 0 / 0
Регистрация: 07.05.2012
Сообщений: 34
22.05.2012, 22:36  [ТС]
MrGluck, а иначе как нить можно сделать чтоб DevC++ скомпилировал это дело?
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
22.05.2012, 23:21
Цитата Сообщение от e73t4ph Посмотреть сообщение
MrGluck, а иначе как нить можно сделать чтоб DevC++ скомпилировал это дело?
Надо переделать лямбда функции на предикат.
0
0 / 0 / 0
Регистрация: 07.05.2012
Сообщений: 34
22.05.2012, 23:27  [ТС]
MrGluck, я без понятия что такое лямбда функции что такое предикат
0
What a waste!
 Аватар для gray_fox
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
22.05.2012, 23:44
Цитата Сообщение от e73t4ph Посмотреть сообщение
что такое лямбда функции
C++
1
[](const int value) {return value <=1; }
Цитата Сообщение от e73t4ph Посмотреть сообщение
что такое предикат
C++
1
2
3
4
5
struct predicate : std::unary_function<bool, int> {
     bool operator ()(int value) const {
         return value <= 1;
     }
};
Вызывать так:
C++
1
std::count_if(arr, arr + n, predicate()); //[](const int value) {return value <=1; } );
Вообще эту лямбду можно заменить функторами из std:
C++
1
std::count_if(arr, arr + n, std::bind2nd(std::less_equal<int>(), 1)); //[](const int value) {return value <=1; } );
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
22.05.2012, 23:58
предикат можно описать и так:

C++
1
2
3
4
bool f(const int value)
{
    return value < 1;
}
1
0 / 0 / 0
Регистрация: 07.05.2012
Сообщений: 34
23.05.2012, 00:12  [ТС]
на эти функторы std:: компиляр DevC++ ругается. прост надо на более простые заменить

Добавлено через 3 минуты
MrGluck, если подставить предикат то он на скобку ругается
0
What a waste!
 Аватар для gray_fox
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
23.05.2012, 00:14
Цитата Сообщение от e73t4ph Посмотреть сообщение
на эти функторы std:: компиляр DevC++ ругается. прост надо на более простые заменить
прост надо компилятор на более новый заменить) Серьёзно, <functional> ввели лет сто назад.
1
0 / 0 / 0
Регистрация: 07.05.2012
Сообщений: 34
23.05.2012, 00:15  [ТС]
а какой компиляр получше будет?
0
What a waste!
 Аватар для gray_fox
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
23.05.2012, 00:21
Цитата Сообщение от e73t4ph Посмотреть сообщение
а какой компиляр получше будет?
Я так понимаю, в Dev C++ используется MinGW (cам Dev не пользовался). Если так, то просто обновите MinGW. Последняя стабильная версия - 4.7.0.
upd: если это там возможно, конечно.
1
0 / 0 / 0
Регистрация: 07.05.2012
Сообщений: 34
23.05.2012, 00:29  [ТС]
все равно не компилирует
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
23.05.2012, 01:07
Цитата Сообщение от gray_fox Посмотреть сообщение
Я так понимаю, в Dev C++ используется MinGW (cам Dev не пользовался). Если так, то просто обновите MinGW. Последняя стабильная версия - 4.7.0.
upd: если это там возможно, конечно.
Там MinGW, а ядро gcc 3.4.2 если не обновлять. Кстати у меня при попытке обновиться еррор вылазит. Я конечно нубяра, но возможно и не один такой) Ну и меня это особо не парит, т.к. винда у меня запущена только когда я в герои играю, либо ксс с друзьями. А для работы лучше линукс.
Так что ТС-у надо либо:
1. Сменить лямбда-функции на предикаты
2. Сменить компилятор
3. Сменить ОС
4. Написать эту плевую прогу без использования STL и прочих наворотов вообще.
1
0 / 0 / 0
Регистрация: 07.05.2012
Сообщений: 34
23.05.2012, 16:07  [ТС]
кстати если компилировать через Visual Studio то ошибка в следующей строчке
<< (double) (1 + std::accumulate(R, R + Rn, 0) ) / (1 + astd::ccumulate(S, S + Sn, 0) );

а именно в слове accumulate

Добавлено через 13 часов 51 минуту
заменил строчку
Rn = std::count_if(arr, arr + n, [](const int value) {return value <=1; } );
на

struct predicate : std::unary_function<bool, int> {
bool operator ()(int value) const {
return value <= 1;
}
};

эта заработала теперь ошибка в следующей

std::for_each(arr, arr + n, [R, &Rn, S, &Sn](const int value)
0
What a waste!
 Аватар для gray_fox
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
23.05.2012, 18:53
Цитата Сообщение от e73t4ph Посмотреть сообщение
эта заработала теперь ошибка в следующей
C++
1
std::for_each(arr, arr + n, [R, &Rn, S, &Sn](const int value)
ну дык аналогично надо заменить лямбду:
C++
1
2
[R, &Rn, S, &Sn](const int value)
{if (value <=1) R[Rn++] = value; else S[Sn++] = value; }
1
0 / 0 / 0
Регистрация: 07.05.2012
Сообщений: 34
23.05.2012, 19:31  [ТС]
Цитата Сообщение от gray_fox Посмотреть сообщение
ну дык аналогично надо заменить лямбду:
C++
1
2
[R, &Rn, S, &Sn](const int value)
{if (value <=1) R[Rn++] = value; else S[Sn++] = value; }
это не принимает
0
What a waste!
 Аватар для gray_fox
1610 / 1302 / 180
Регистрация: 21.04.2012
Сообщений: 2,733
23.05.2012, 19:37
Цитата Сообщение от e73t4ph Посмотреть сообщение
это не принимает
Надо заменить вот это:
C++
1
2
[R, &Rn, S, &Sn](const int value)
{if (value <=1) R[Rn++] = value; else S[Sn++] = value; }
таким же образом, как поменяли лямбду здесь:
C++
1
Rn = std::count_if(arr, arr + n, [](const int value) {return value <=1; } );
Если вдруг обновили компилятор, попробуйте скомпилировать с опцией -std=c++11 или -std=c++0x
0
0 / 0 / 0
Регистрация: 07.05.2012
Сообщений: 34
23.05.2012, 19:58  [ТС]
обновлял. не помогло.

ну так вот
std::for_each(arr, arr + n, [R, &Rn, S, &Sn](const int value)

заменить на эту

C++
1
2
3
4
5
struct predicate : std::_______<bool,int>
{boot operator(R, &Rn, S, &Sn) int value;
{return value <=1;
}
};
так ли? и какой оператор подставить там где пробел?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.05.2012, 19:58
Помогаю со студенческими работами здесь

BGL на DEVC++
Здравствуйте. Я не знаю как подлюлючить BGL в DEVC++. Если кто знает напишите пож.

Массив: Выделить возрастающую под последовательность элементов наибольшей длины.
Задан массив размера N. Выделить возрастающую под последовательность элементов наибольшей длины.

Не работает calloc в DevC++
Вот код программы. #include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; float *get_mem(void) { float *p; р = (float *) calloc(100,...

Запись формулы в DevC++
1. http://s42.***********/i096/1210/72/70e54d54c960.jpg как записать эту формулу в DevC++? 2. #include &lt;stdio.h&gt; #include...

очистка экрана на DevC++
Почему пишет ошибку оператора очистки экрана clrscr () на DevC++ ?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru