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

описать функцию, которая заменяет все вхождения элемента - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
hoholnn
0 / 0 / 0
Регистрация: 09.03.2011
Сообщений: 30
08.09.2011, 09:34     описать функцию, которая заменяет все вхождения элемента #1
В составе программы описать функцию, которая заменяет в списке все вхождения элемента E1, значение которого введено с клавиатуры, на эле-мент E2, значение которого также введено с клавиатуры.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.09.2011, 09:34     описать функцию, которая заменяет все вхождения элемента
Посмотрите здесь:

Составить функцию, которая заменяет в списке L все вхождения Е1 на Е2. C++
Составить программу, которая все элементы, расположенные на главной и побочных диагоналях массива, заменяет значение минимального элемента C++
C++ функцию, которая находит в массиве минимальный по модулю элемент и заменяет им все элементы в нечетных строках
Составить рекурсивную функцию, которая определяет наибольшую цифру, и заменяет все строчные латинские буквы C++
Динамические структуры данных. Описать функцию, которая подсчитывает число вхождений элемента Е C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Enfernuz
 Аватар для Enfernuz
22 / 22 / 1
Регистрация: 11.04.2011
Сообщений: 67
08.09.2011, 09:59     описать функцию, которая заменяет все вхождения элемента #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
int main()
{
   someType* array = new someType[%SIZE];
    ... //заполнение массива
   someType e1, e2;
   cout<<"e1: ";
   cin>>e1;
   cout<<endl<<"e2: ";
   cin>>e2;
   for(int i = 0; i < %SIZE; i++)
   {
       if(array[i] == e1)
          array[i] = e2;
   }
}
hoholnn
0 / 0 / 0
Регистрация: 09.03.2011
Сообщений: 30
08.09.2011, 10:02  [ТС]     описать функцию, которая заменяет все вхождения элемента #3
а полную версию не сможешь написать? а то как то не сростаетсья с этим заданием у меня....
зарание спасибо.
Enfernuz
 Аватар для Enfernuz
22 / 22 / 1
Регистрация: 11.04.2011
Сообщений: 67
08.09.2011, 10:08     описать функцию, которая заменяет все вхождения элемента #4
Если в виде метода, то как-то так:
C++
1
2
3
4
5
6
7
8
void SwapElements(someType* array, int arraySize, someType e1, someType e2)
{
   for(int i = 0; i < arraySize; i++)
   {
       if(array[i] == e1)
          array[i] = e2;
   }
}
Соответственно, контекст применения такой:
C++
1
2
3
4
5
6
7
8
   someType* array = new someType[%SIZE];
    ... //заполнение массива
   someType e1, e2;
   cout<<"e1: ";
   cin>>e1;
   cout<<endl<<"e2: ";
   cin>>e2;
   SwapElements(array, %SIZE, e1, e2);
Или что-то другое нужно?
hoholnn
0 / 0 / 0
Регистрация: 09.03.2011
Сообщений: 30
08.09.2011, 10:12  [ТС]     описать функцию, которая заменяет все вхождения элемента #5
ну вот в задание есть такой пример:
Поиск элемента в связном списке.
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
43
44
45
46
47
48
49
50
51
52
53
#include <iostream>
using namespace std;
#include <stdlib.h>
 
void main()
{   int N;          // количество элементов в списке
    int target;         // искомое значение
    int count;              // местоположение искомого элемента
    struct node {   int dat;        // информационное поле
    struct node *link;  // поле-указатель
    };
    typedef node *NodePtr;      //указатель на тип Node
    NodePtr head = NULL;
    NodePtr here;       // указатель на текущий элемент
    randomize();
    cout << "Введите количество элементов в списке  ";
    cin >> N;
    for (int i = 0; i<N; i++)   // формируем стек
    {   if (head == NULL)
    {   head = new node;
    if (head == NULL)
    { cout << "Недостаточно памяти !" << endl;
              exit(1);   }
    head->dat = random(100) - 50;
    cout << head->dat << ' ';
    head->link = NULL;
    }
    else    {   here = new node;
    if (here == NULL)
            {   cout << "Недостаточно памяти !" << endl;
                 exit(2);
             }
    here->dat = random(100) - 50;
    cout << here->dat << ' ';
    here->link = head;
    head = here;
    }
    }
    cout <<endl;
    cout << "Чему равно искомое значение? ";
    cin >> target;
    here = head;  count = 1;        // встали в начало списка
    if (here == NULL)
    cout << "Список пуст!" << endl;
    else { while (here->dat != target && here->link != NULL)
    { here = here->link;
    count++;
    }
    if (here->dat == target)
    cout << "Искомый элемент имеет № " << count << endl;
    else   cout << "Элемент не найден!" << endl;
    }
}
Добавлено через 1 минуту
наверно...нужно отталкиваться от этого примера...
Enfernuz
 Аватар для Enfernuz
22 / 22 / 1
Регистрация: 11.04.2011
Сообщений: 67
08.09.2011, 10:29     описать функцию, которая заменяет все вхождения элемента #6
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
int N; // количество элементов в списке
int e1; // E1
int e2; // E2
struct node 
{ 
    int dat; // информационное поле
    struct node* link; // поле-указатель
};
typedef node *NodePtr; //указатель на тип Node
NodePtr head = NULL;
NodePtr here; // указатель на текущий элемент
randomize();
cout << "Введите количество элементов в списке ";
cin >> N;
for (int i = 0; i<N; i++) // формируем стек
{ 
    if (head == NULL)
    { 
        head = new node;
        if (head == NULL)
        { 
             cout << "Недостаточно памяти !" << endl;
             exit(1); 
        }
        head->dat = random(100) - 50;
        cout << head->dat << ' ';
        head->link = NULL;
    }
    else 
    { 
        here = new node;
        if (here == NULL)
        { 
            cout << "Недостаточно памяти !" << endl;
            exit(2);
         }
         here->dat = random(100) - 50;
         cout << here->dat << ' ';
         here->link = head;
         head = here;
     }
}
cout <<endl;
cout << "Чему равно E1? ";
cin >> e1;
cout<<endl<<"Чему равно E2? ";
cin >> e2;
here = head; //по-моему, в этой строке нет необходимости. После цикла for(...) head и так равен here и указывает на последний элемент. 
if (here == NULL)
    cout << "Список пуст!" << endl;
else 
{ 
   while (here->link != NULL)
   {  
       if(here->dat == e1)
          here->dat == e2;
       here = here->link;
    }
}
hoholnn
0 / 0 / 0
Регистрация: 09.03.2011
Сообщений: 30
08.09.2011, 10:42  [ТС]     описать функцию, которая заменяет все вхождения элемента #7
ну вот примерно нароботка...тогоже задание:

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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <iostream>
 
using namespace std;
 
void main()
{   
    double i,x,e1,e2,count;
    struct node
    { 
        int info;
        struct node* next;
    };
    typedef node *NodePtr;
    NodePtr head=NULL;
    NodePtr p;
    int N=10;
    int cnt=1;
 
    if(head==NULL)
    {
        head=new node;
        head->info=rand()%5-2;
        head->next=NULL;
    }
    for (i=2;i<=N;i++)
    {
        p=new node;
        p->info=rand()%5-2;
        p->next=head;
        head=p;
    }
    p=head;
    count=1;
    for(i=1;i<=N;i++)
    {
        cout<<p->info<<' ';
        p=p->next;
    }
    cout<<endl;
    cout<<"E1?"<<endl;
    cin>>e1;
    cout<<"E2?"<<endl;
    cin>>e2;
    p=head;
    while (p->next!=NULL) 
    //for (i=1;i<=N;i++)
    {
        if(p->info != e1)
        {
            p=p->next;
        }
        else
        {
            p->info=e2;
            p=p->next;
        }   
    }//
    p=head;
    for(i=1;i<=N;i++)
    {
        cout<<p->info<<' ';
        p=p->next;
    }
    cout<<endl<<"x-?";
    cin>>x;
}
Enfernuz
 Аватар для Enfernuz
22 / 22 / 1
Регистрация: 11.04.2011
Сообщений: 67
08.09.2011, 10:50     описать функцию, которая заменяет все вхождения элемента #8
Лучше возьмите за основу мой пример --- в вашем много лишних действий, хоть он и рабочий. Если есть желание, могу объяснить, какие действия (строчки) лишние.
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
08.09.2011, 14:15     описать функцию, которая заменяет все вхождения элемента #9
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 <iostream>
#include <list>
#include <algorithm>
#include <iterator>
 
int main()
{
    int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 2, 4, 5, 4 };
    
    std::list<int> list( arr, arr + sizeof(arr) / sizeof(*arr) );
    
    std::cout << "Before: ";
    std::copy( list.begin(), list.end(), std::ostream_iterator<int> (std::cout, " ") ); 
    
    std::cout << "\n\nEnter 2 numbers: ";
    
    int e1, e2;
    std::cin >> e1 >> e2;
    
    std::cout << "\nAfter: ";
    std::replace( list.begin(), list.end(), e1, e2);
    std::copy( list.begin(), list.end(), std::ostream_iterator<int> (std::cout, " ") ); 
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.09.2011, 17:52     описать функцию, которая заменяет все вхождения элемента
Еще ссылки по теме:

C++ Описать функцию, которая удаляет из строки все лишние пробелы
Написать функцию которая заменяет все буквы в строке на '*',а цифры оставляет как есть. C++
Описать функцию, которая подсчитывает число вхождений элемента E в список Q C++

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

Или воспользуйтесь поиском по форуму:
hoholnn
0 / 0 / 0
Регистрация: 09.03.2011
Сообщений: 30
18.09.2011, 17:52  [ТС]     описать функцию, которая заменяет все вхождения элемента #10
Enfernuz
Если не сложно....то я внимательно слушаю)
Yandex
Объявления
18.09.2011, 17:52     описать функцию, которая заменяет все вхождения элемента
Ответ Создать тему
Опции темы

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