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

Подсчитать число вхождений элемента в список - C++

Восстановить пароль Регистрация
 
pr1me222
0 / 0 / 0
Регистрация: 11.05.2011
Сообщений: 71
09.01.2013, 02:13     Подсчитать число вхождений элемента в список #1
Условие:

Описать функцию, которая подсчитывает число вхождений элемента Е, значение ко-торого введено с клавиатуры, в списке Q.

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
67
68
69
70
71
72
73
#include <iostream>
# include <conio.h>
#include <math.h>
#include <stdlib.h>
using namespace std;
void main()
{
    struct node {   int info;  
    struct node *next;
    };
    typedef node *NodePtr;  // указатель на тип node
    NodePtr head = NULL;
    NodePtr p;      // указатель на текущий элемент
    int N = 10;     // количество элементов в очереди
    int cnt = 1;// счетчик элементов в очереди
    int i;
    if (head == NULL)
    {   head = new node;
    //head->info = cnt++;   
    // или так:
    head->info = rand();
    head->next = NULL;
    } 
    for (int i = 2; i<=N; i++)
    {   p = new node;
    p->info =rand();
    //cnt++;    
    // 
    //random(100) - 50;
    p->next = head;
    head = p;
    }
// Вывод стека на экран
    p = head;
    for (i = 1; i<=N; i++)
    {   cout << p->info << ' ';
    p = p->next;
    }
    cout <<endl;
 
{
 
    
    p = head;
    cout<<"Vvedite E";
int i_1, i_c = 0;
cin>>i_1;
 
while(p)
{
if(i_1 == p->info)
++i_c;
 
p = p->next;
}
 
    //int e;
    //cout<< "Vvedite E";
    //cin>>e;
    //int s=0;
    //for (i = 1; i<=N; i++)
     //for (s=0; e=i; s++)
     //{ 
    //cout <<s; 
     //}
     //else
    // {
        // cout<< "Error";
     //}
}
 //return 0;
    getch ();
}

Программа запускается, однако не производится подсчет вхождений элемента Е.
Извиняюсь за чайниковую тему( в структурах вообще не бум бум((
ПРошу помощиии)) Заранее спасибо))
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2013, 02:13     Подсчитать число вхождений элемента в список
Посмотрите здесь:

Подсчитать число вхождений буквы "a" в строку C++
Как подсчитать количество вхождений подстроки в строку C++
Динамические структуры данных. Описать функцию, которая подсчитывает число вхождений элемента Е C++
Подсчитать количество вхождений каждого символа в строку C++
Описать функцию, которая подсчитывает число вхождений элемента E в список Q C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Джек
5 / 5 / 0
Регистрация: 16.08.2011
Сообщений: 77
09.01.2013, 02:42     Подсчитать число вхождений элемента в список #2
Возможно было бы неплохо перед циклом - while поставить какую нить перемную k = 0 и задать цикл ввода. Ну например пока вводимые данные не 0 то k=k++ вот и будет вам счетчик.
pr1me222
0 / 0 / 0
Регистрация: 11.05.2011
Сообщений: 71
19.01.2013, 18:56  [ТС]     Подсчитать число вхождений элемента в список #3
Описать функцию, которая подсчитывает число вхождений элемента Е, значение которого введено с клавиатуры, в списке Q.
Может кто нибудь когда-нибудь делал данное задание, очень прошу выложить код..(
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
19.01.2013, 23:49     Подсчитать число вхождений элемента в список #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include <iostream>
 
struct Node {
  
    int data;
    Node* next;
};
 
struct List {
       
    Node* head;
    Node* tail;
};
 
void listInit(List& list) {
 
    list.head = list.tail = NULL;
}
 
void listPushBack(List& list, int value) {
 
    if(!list.head) {
     
        list.head = new Node;
        list.tail = list.head;
    }
    
    else {
     
        list.tail->next = new Node;
        list.tail = list.tail->next;
    }
    
    list.tail->data = value;
    list.tail->next = NULL;
}
 
void listFree(List& list) {
    
    Node* p = list.head;
    
    while(p) {
        
        Node* t = p->next;
        delete p;
        p = t;
    }
}
 
int listCount(const List& list, int value) {
 
    int res = 0;
    
    for(const Node* p = list.head; p; p = p->next)
        if(p->data == value) ++res;
    
    return res;
}
 
int main() {
                 
    List list;
    listInit(list);
    
    int value;
    
    for(int i = 1; i <= 10; ++i) {
                     
        std::cout << "[" << i << "]: ";
        std::cin >> value;
        listPushBack(list, value);
    }
    
    std::cout << "count the number of occurrences: ";
    std::cin >> value;    
    
    std::cout << "result: " << listCount(list, value) << std::endl;
    
    listFree(list);
}
Yandex
Объявления
19.01.2013, 23:49     Подсчитать число вхождений элемента в список
Ответ Создать тему
Опции темы

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