Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> В main работает в func нет 
:(
    Опции темы
docmai
Дата 13.9.2010, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 10.9.2010

Репутация: нет
Всего: нет



Подскажите, пожалуйста, уважаемые форумчане. Код функции create(), будучи вставленным в main, работает безошибочно, но стоит ему оказаться на своем месте (в месте функции), так после ввода первого элемента программа виснет.
Код

//---------------------------------------------------------------------------
// Подключаемые библиотеки
#include <vcl.h>
#include <tchar.h>
#include <iostream.h>
#pragma hdrstop
#pragma argsused

// Прототипы функций
void create(void);
void print(void);

// Структуры
struct tfll
{
    int key;
    tfll *prev,*next;
};

// Глобальные переменные
static tfll *first;

void create()
{
    int i = 0;
    char cTemp;
    tfll *p,*temp;
    cout << "\n";
    cTemp = 'i';
    while (cTemp != 'n')
    {
        cout << "Do you want to create another element (y/n): ";
        cin >> cTemp;
        if (cTemp == 'y')
        {
            temp = p;
            p = new tfll;
            cout << "Enter the key of i = " << i << " element \n";
            cin >> p->key;
            p->prev = temp;
            temp->next = p;
            if (i == 0)
            {
                p->prev=NULL;
                first = p;
                i++;
                continue;
            }
            i++;
        }
        if (cTemp == 'n')
        {
            p->next = NULL;
        }
    }
}

void print()
{
    tfll* p;
    p = first;
    while(1)
    {
        cout << p->key << "\n";
        p = p->next;
    }

}

int _tmain(int argc, _TCHAR* argv[])
{
    int nImputValue,nTempValue;

    cout << "Menu:\n\n";
    // Ввод  информации
    cout << "1. Information input\n";
    // Вывод информации на экран
    cout << "2. The conclusion of the information to the screen\n";
    // Поиск информации
    cout << "3. Information search\n";
    // Добавление информации
    cout << "4. Information addition\n";
    // Удаление информации
    cout << "5. Information removal\n";
    // Сохранение информации в файле
    cout << "6. Information preservation in a file\n";
    // Считывание информации из файла
    cout << "7. Reading of the information from a file\n";
    // Выход
    cout << "8. Exit\n\n";

    while (nImputValue != 8)
    {
        cout << "Enter your choise:\n";
        cin >> nImputValue;

        switch (nImputValue)
        {
            case 1:
                create();
                break;
            case 2:
                // Функция 2
                print();
                break;
            case 3:
                // Функция 3
                break;
            case 4:
                // Функция 4
                break;
            case 5:
                // Функция 5
                break;
            case 6:
                // Функция 6
                break;
            case 7:
                // Функция 7
                break;
            default:
                cout << "Enter number from a spectrum [1;8]\n";
        }
        cout << "\n";
    }

    cout << "Enter some key to the end of program\n";
    cin >> nTempValue;
    return 0;
}


PM MAIL   Вверх
Crafty
Дата 13.9.2010, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 319
Регистрация: 3.11.2008

Репутация: 12
Всего: 14



Вы используете не инициализированную переменную 
Код

 int nImputValue

либо используйте вместо цикла while цикл do while.

Это сообщение отредактировал(а) Crafty - 13.9.2010, 19:29
PM MAIL   Вверх
xvr
Дата 14.9.2010, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Цитата(Crafty @  13.9.2010,  19:21 Найти цитируемый пост)
Вы используете не инициализированную переменную 
Неа, он использует МАССУ не инициализированных переменных  smile 
Код

    tfll *p,*temp;
да и логика заполнения списка хромает  smile 

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

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


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0423 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.