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

последовательность - C++

Восстановить пароль Регистрация
 
e73t4ph
0 / 0 / 0
Регистрация: 07.05.2012
Сообщений: 34
15.05.2012, 00:14     последовательность #1
Даны n, последовательность n x , x ,...x 1 2 . Получить (1+R)/(1+S), где R – сумма тех членов
последовательности, которые не превосходят 1, а S – сумма членов, больших 1. Использовать динамические
массивы.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2012, 00:14     последовательность
Посмотрите здесь:

Преобразовать литерную последовательность в другую литерную последовательность всеми описанными ниже способами C++
Вводится последовательность из N целых чисел. Сформировать последовательность, C++
C++ Вводить последовательность вещественных чисел, пока следующее вводимое число не окажется меньше предыдущего. Вывести полученую последовательность.
Вводится последовательность целых чисел,0 –конец последовательности. Определить, содержит ли последовательность хотя бы три отрицательных четных числа C++
C++ Дана последовательность, элементы которой есть целые двузначные числа. Упорядочить последовательность по убыванию произведений цифр
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,409
15.05.2012, 00:54     последовательность #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
#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;
}
e73t4ph
0 / 0 / 0
Регистрация: 07.05.2012
Сообщений: 34
15.05.2012, 01:09  [ТС]     последовательность #3
компилятор ругается на строчку

Rn = std::count_if(arr, arr + n, [](const int value) {return value <=1; } );
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,409
15.05.2012, 01:13     последовательность #4
http://liveworkspace.org/code/b85af7...126f9ee57755c6
e73t4ph
0 / 0 / 0
Регистрация: 07.05.2012
Сообщений: 34
15.05.2012, 17:05  [ТС]     последовательность #5
std::copy
std::ostream_iterator
std::accumulate

и по сути что такое std:: ?
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,409
15.05.2012, 19:02     последовательность #6
Цитата Сообщение от e73t4ph Посмотреть сообщение
std::copy
std::ostream_iterator
std::accumulate

и по сути что такое std:: ?
std::copy копирует последовательность http://www.cplusplus.com/reference/algorithm/copy/
std::ostream_iterator итератор для вывода в поток http://www.cplusplus.com/reference/s...ream_iterator/
std::accumulate подсчитывает сумму элементов последовательности (в данном примере, вообще, он более функционален) http://www.cplusplus.com/reference/s...ic/accumulate/

std - пространство имен функций
std:: - область видимости функции
Yandex
Объявления
15.05.2012, 19:02     последовательность
Ответ Создать тему
Опции темы

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