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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
MeGreL
0 / 0 / 0
Регистрация: 16.05.2014
Сообщений: 29
#1

Векторы. Дана последовательность целых чисел. Заменить все четные элементы на Х - C++

06.08.2014, 21:38. Просмотров 622. Ответов 8
Метки нет (Все метки)

Дана последовательность целых чисел. Заменить все четные элементы на Х. Помогите пожалуйста, сам изучаю язык что бы перевестись в другую группу и не у кого спросить. где ошибка ?

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
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool pred(int x)
{bool e;
    if(x%2==0) e=true;
    else 
    e=false;
    return(e);
}
int main()
{
vector <int> ivec;
vector <int>::iterator iter;
int x,n,k;
cout<<"n= ";
cin>>n;
for (int i=0;i<n;i++)
    {
    cout<<"Vvedite element s nomerom "<<i<<endl;
    cin>>x;
    ivec.push_back(x);
    }
cout<<"Vvedite x"<<endl;
cin>>k;
ivec.push_back(k);
vector <int>::iterator obmen=find(ivec.begin(),ivec.end(),k);
for (int i=0;i<n;i++)
    {
    vector <int>::iterator chet=find_if(ivec.begin(),ivec.end(),pred);
    iter_swap(chet,obmen);
    }
for (iter=ivec.begin();iter<ivec.end();iter++);
cout<<*iter<<endl;
return 0;
}
Добавлено через 15 минут
C++
1
2
3
4
for (int i=0;i<n;i++)
    {
    vector <int>::iterator chet=replace(ivec.begin(),ivec.end(),pred,k);
    }
может так ? ??
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.08.2014, 21:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Векторы. Дана последовательность целых чисел. Заменить все четные элементы на Х (C++):

Дан массив целых чисел из 10 элементов.Все элементы кратные 10 заменить 0;Все нечетные элементы удвоить, а четные уменьшить на 2; - C++
Дан массив целых чисел из 50 элементов. Все элементы кратные 10 заменить 0; Все нечетные элементы удвоить, а четные уменьшить на 2; ...

Дана последовательность целых чисел. заменить все простые числа на х - C++
дана последовательность целых чисел. заменить все простые числа на х #include &quot;iostream&quot; #include &quot;algorithm&quot; #include &quot;vector&quot; ...

1.Дана последовательность целых чисел,заменить все двузначные числа на X - C++
1.Дана последовательность целых чисел,заменить все двузначные числа на X Алгоритмы STL

Ввести двумерный массив целых чисел размерностью 2 на 4. Заменить все четные элементы на 0 - C++
Ввести двумерный массив целых чисел размерностью 2 на 4. Заменить все четные элементы числом 0. Буду благодарен за помощь и поддержку.

Алгоритмы STL. Дана последовательность целых чисел. Удалить из массива все максимальные элементы - C++
Дана последовательность целых чисел.Удалить из массива все максимальные элементы. Использовать Алгоритмы STL. Помогите доработать) ...

Дана последовательность из целых чисел. Все элементы меньше заданного числа, увеличить в два раза - C++
дана последовательность из целых чисел, все элементы меньше заданного числа, увеличить в два раза

8
RussBear
1 / 1 / 1
Регистрация: 06.08.2014
Сообщений: 77
06.08.2014, 21:49 #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
#include <Vector>
#include <iostream>
int main(int argc, char const *argv[])
{
    std::vector<int> v;
    for (int i = 0; i < 10; ++i)
    {
        int elem;
        std::cin >> elem;
        v.push_back(elem);
    }
    int x;
    std::cout << "please enter elem X\n";
    std::cin >> x;
    for (std::vector<>::iterator i = v.begin(); i != v.end(); ++i)
    {
        if (!v[i]%2){
            v[i] = x;
        }
                        
    }
    return 0;
}
Добавлено через 1 минуту
это самый примитивный вариант.
0
MeGreL
0 / 0 / 0
Регистрация: 16.05.2014
Сообщений: 29
06.08.2014, 21:59  [ТС] #3
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
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool pred(int x)
{
    return(x<0);
}
int main()
{
vector <int> iVec;
vector <int>::iterator iter;
int x,n;
cout<<"n= ";
cin>>n;
for (int i=0;i<n;i++)
    {
    cout<<"Vvedite element s nomerom "<<i<<endl;
    cin>>x;
    iVec.push_back(x);
    }
replace_if(iVec.begin(),iVec.end(),pred,0);
 
for (vector <int>::iterator iter=iVec.begin();iter<iVec.end();iter++);
cout<<*iter<<endl;
return 0;
}






я ввел из методички задачку в примерах и она тоже ошибку дает ? почему ????

Добавлено через 2 минуты
То что вы прислали тоже не работает! может что то не так с моим VS ? 2008 года.

Добавлено через 2 минуты
То что вы прислали тоже не работает! может что то не так с моим VS ? 2008 года.
0
Vourhey
Почетный модератор
6482 / 2256 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
06.08.2014, 22:01 #4
C++
1
transform(begin(v), end(v), begin(v), [](const int val){ return (val%2 == 0)?x:val;});
0
MeGreL
0 / 0 / 0
Регистрация: 16.05.2014
Сообщений: 29
06.08.2014, 22:05  [ТС] #5
я же говорю что только начинаю учить! а вы пишите то чего я не понимаю ?! куда это вставлять ? и что это вообще ?
0
Vourhey
Почетный модератор
6482 / 2256 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
06.08.2014, 22:09 #6
Цитата Сообщение от MeGreL Посмотреть сообщение
а вы пишите то чего я не понимаю ?!
Кто-то понимает одно, кто-то другое. К чему мне эти заботы? Раздел С++, код С++, все в рамках.
Цитата Сообщение от MeGreL Посмотреть сообщение
куда это вставлять ?
В код программы соответственно.
Цитата Сообщение от MeGreL Посмотреть сообщение
и что это вообще ?
Это код решающий
Цитата Сообщение от MeGreL Посмотреть сообщение
Дана последовательность целых чисел. Заменить все четные элементы на Х.
Но в VS 2008, если компилятор не новый, компилироваться не будет.
0
Vtulhu
371 / 377 / 96
Регистрация: 12.08.2011
Сообщений: 1,610
07.08.2014, 12:27 #7
C
1
2
3
4
5
6
7
void replace_evens(int* arr, unsigned int siz, const int x)
{
    while( siz-- ) {
        if( (*arr & 1) == 0 ) { *arr = x; }
        ++arr;
    }
}
0
Тамика
Котовчанин
911 / 454 / 144
Регистрация: 16.02.2010
Сообщений: 3,113
Записей в блоге: 27
07.08.2014, 12:38 #8
Цитата Сообщение от MeGreL Посмотреть сообщение
То что вы прислали тоже не работает! может что то не так с моим VS ? 2008 года.
Может текст ошибки приведёте? Тут есть телепаты, но они вангуют в другой теме пока что.
0
Firework
63 / 87 / 23
Регистрация: 01.04.2013
Сообщений: 594
07.08.2014, 12:45 #9
C++
1
2
3
4
bool pred(int x)
{
    return(x<0);
}
Естественное даёт ошибку. У вас функция-предикат определяет отрицательные элементы, а не чётные.

Замените её на

C++
1
2
3
4
bool pred(int x)
{
    return x%2 == 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.08.2014, 12:45
Привет! Вот еще темы с ответами:

В файле целых чисел заменить все четные натуральные числа их квадратами - C++
В файле целых чисел заменить все четные натуральные числа их квадратами

Задана матрица целых чисел. Найти номера строк, все элементы которых четные - C++
Посмотрите пожалуйста в чем ошибка. #include&lt;iostream&gt; using namespace std; int M,n,i,j,k; int main() { setlocale(LC_ALL,...

Дан массив целых чисел. Вывести все четные элементы массива, стоящие на нечетных местах - C++
Не могу понять как это сделать :(

Дана последовательность действительных чисел, в которой заменить все ее члены, большие данного Z, этим числом - C++
Дана последовательность действительных чисел аь а2,..., а„. Заменить все ее члены, большие данного Z, этим числом. Подсчитать ...


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

Или воспользуйтесь поиском по форуму:
9
Yandex
Объявления
07.08.2014, 12:45
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru