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

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

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

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

06.08.2014, 21:38. Просмотров 581. Ответов 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);
    }
может так ? ??
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.08.2014, 21:38     Векторы. Дана последовательность целых чисел. Заменить все четные элементы на Х
Посмотрите здесь:
1.Дана последовательность целых чисел,заменить все двузначные числа на X C++
C++ Дана последовательность целых чисел. заменить все простые числа на х
C++ Ввести двумерный массив целых чисел размерностью 2 на 4. Заменить все четные элементы на 0
Алгоритмы STL. Дана последовательность целых чисел. Удалить из массива все максимальные элементы C++
C++ Дана последовательность из целых чисел. Все элементы меньше заданного числа, увеличить в два раза
C++ Задана матрица целых чисел. Найти номера строк, все элементы которых четные
C++ Дан массив целых чисел. Вывести все четные элементы массива, стоящие на нечетных местах
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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 минуту
это самый примитивный вариант.
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 года.
Vourhey
Почетный модератор
6474 / 2249 / 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;});
MeGreL
0 / 0 / 0
Регистрация: 16.05.2014
Сообщений: 29
06.08.2014, 22:05  [ТС]     Векторы. Дана последовательность целых чисел. Заменить все четные элементы на Х #5
я же говорю что только начинаю учить! а вы пишите то чего я не понимаю ?! куда это вставлять ? и что это вообще ?
Vourhey
Почетный модератор
6474 / 2249 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
06.08.2014, 22:09     Векторы. Дана последовательность целых чисел. Заменить все четные элементы на Х #6
Цитата Сообщение от MeGreL Посмотреть сообщение
а вы пишите то чего я не понимаю ?!
Кто-то понимает одно, кто-то другое. К чему мне эти заботы? Раздел С++, код С++, все в рамках.
Цитата Сообщение от MeGreL Посмотреть сообщение
куда это вставлять ?
В код программы соответственно.
Цитата Сообщение от MeGreL Посмотреть сообщение
и что это вообще ?
Это код решающий
Цитата Сообщение от MeGreL Посмотреть сообщение
Дана последовательность целых чисел. Заменить все четные элементы на Х.
Но в VS 2008, если компилятор не новый, компилироваться не будет.
Vtulhu
369 / 375 / 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;
    }
}
Тамика
Котовчанин
869 / 449 / 142
Регистрация: 16.02.2010
Сообщений: 2,899
Записей в блоге: 27
07.08.2014, 12:38     Векторы. Дана последовательность целых чисел. Заменить все четные элементы на Х #8
Цитата Сообщение от MeGreL Посмотреть сообщение
То что вы прислали тоже не работает! может что то не так с моим VS ? 2008 года.
Может текст ошибки приведёте? Тут есть телепаты, но они вангуют в другой теме пока что.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.08.2014, 12:45     Векторы. Дана последовательность целых чисел. Заменить все четные элементы на Х
Еще ссылки по теме:
C++ Дана последовательность действительных чисел, в которой заменить все ее члены, большие данного Z, этим числом
C++ В матрице целых чисел заменить все отрицательные элементы нулями
C++ В последовательности целых чисел заменить все элементы, меньшие заданного числа
C++ Массивы: все элементы, кратные 10, заменить 0, все нечетные элементы удвоить, а четные уменьшить в 2 раза
В массиве из 10 целых чисел заменить все элементы, стоящие на четных местах, на минимальный элемент C++

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

Или воспользуйтесь поиском по форуму:
Firework
60 / 84 / 23
Регистрация: 01.04.2013
Сообщений: 584
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;
}
Yandex
Объявления
07.08.2014, 12:45     Векторы. Дана последовательность целых чисел. Заменить все четные элементы на Х
Ответ Создать тему
Опции темы

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