Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 26.11.2014
Сообщений: 23
1

Организация поиска в списке. Исправить ошибку в методе поиска

22.03.2015, 15:58. Показов 1476. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Сколько бы у меня желания не было, найти ее не могу. Может кто помочь? Заранее спасибо...
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
81
82
83
84
85
86
87
88
89
90
91
92
93
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
struct MyNode
{
    int data;
    MyNode* pNext;
};
MyNode* pBegin = NULL;
MyNode* pEnd;
MyNode* pTemp;
int NumberOfElements = 0;
void AddData()
{
    if (pBegin == NULL)
    {
        pBegin = new MyNode;
        cout << "Введите данные -> ";
        cin >> pBegin->data;
            pBegin->pNext = NULL;
        pEnd = pBegin;
        NumberOfElements++;
    }
    else
    {
        pTemp = new MyNode;
        cout << "Введите данные -> ";
        cin >> pTemp->data;
        pEnd->pNext = pTemp;
        pTemp->pNext = NULL;
        pEnd = pTemp;
        NumberOfElements++;
    }
}
void PrintData()
{
    pTemp = pBegin;
    while (pTemp != NULL)
    {
        cout << "Данные -> " << pTemp->data << endl;
        pTemp = pTemp->pNext;
    }
}
void DeleteData()
{
    MyNode* pDel;
    pTemp = pBegin;
    while (pTemp != NULL)
    {
        cout << "Данные удалены " << endl;
        pDel = pTemp;
        pTemp = pTemp->pNext;
        delete pDel;
        NumberOfElements--;
    }
}
int FindElement(int Obrazec)
{
    pTemp = pBegin;
    int NumberFind = 0;
    while (pTemp != NULL)
    {
        if ((*pTemp).data == Obrazec){ NumberFind++; lal = NumberFind; return NumberFind; }
        pTemp = pTemp->pNext;
    }
    cout << "Данные не найдены :( " << endl;
    return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "rus");
    char ansver = 'y';
    do
    {
        AddData();
        cout << "Продолжить ввод y/n -> ";
        cin >> ansver;
    } while (ansver == 'y');
    cout << "\n Список содержит " << NumberOfElements << " элементa \n\n";
        PrintData();
    cout << "Введите значение для поиска -> ";
    int DataFind;
    cin >> DataFind;
    if (int FindYes = FindElement(DataFind)) cout << "\n Элемент найден на " << FindYes << " месте :) \n\n";
    cout << "Удалить список ? y/n -> ";
    cin >> ansver;
    if (ansver == 'y')
        DeleteData();
    else cout << "Список не удален " << endl;
    system("Pause");
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.03.2015, 15:58
Ответы с готовыми решениями:

Организация поиска с фото
Всем добрый день. Ребята подскажите как мне создать простенькую программу которая будет позволять...

Организация поиска и сортировки
Помогите, кто знает, как организовать &quot;Базу студентов&quot; и реализовать на ней поиск (по ФИО, с...

Организация поиска в структуре С++
Помогите, пожалуйста, со структурой в С++. С этой темой у меня, можно сказать, трудности...

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

3
21 / 21 / 26
Регистрация: 17.03.2015
Сообщений: 119
22.03.2015, 16:06 2
А с чем конкретно помощь нужна?
C++
1
       if ((*pTemp).data == Obrazec){ NumberFind++; lal = NumberFind; return NumberFind; }
Переменную lal Вы не объявили.

Добавлено через 20 секунд
Какие ошибки компилятор выдает?
0
0 / 0 / 0
Регистрация: 26.11.2014
Сообщений: 23
22.03.2015, 16:13  [ТС] 3
lal = NumberFind - это лишняя строчка, простите, забыл ее убрать
В том-то и дело, что компилятор молчит, но при поиске вот что происходит
Организация поиска в списке. Исправить ошибку в методе поиска

Тойсть, он любой элемент выдает за 1-ый в списке
0
21 / 21 / 26
Регистрация: 17.03.2015
Сообщений: 119
22.03.2015, 16:32 4
Лучший ответ Сообщение было отмечено Metricids как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int FindElement(int Obrazec)
{
    pTemp = pBegin;
    int NumberFind = 1;
    while (pTemp != NULL)
    {
        if ((*pTemp).data == Obrazec)
        { 
            
            return NumberFind; 
        }
        NumberFind++; 
        pTemp = pTemp->pNext;
    }
    cout << "Данные не найдены :( " << endl;
    return 0;
}
1
22.03.2015, 16:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.03.2015, 16:32
Помогаю со студенческими работами здесь

Организация поиска в коде программы
#include &quot;stdafx.h&quot; #include&lt;iostream&gt; using namespace std; class road { private: int...

Организация поиска и выбора информации
Известна информация о 28 учениках нескольких школ,занимающихся в районном Доме творчества (фамилия,...

организация поиска и вывода информации в С++
Добрый день! Помогите пожалуйста разобраться, я новичок, только начинаю изучать С++. Нужно...

Написать подпрограмму поиска заданного элемента в списке
Помогите понять как это сделать. Задан текст состоящий из одной строки и оканчивающийся точкой....


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru