Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2009, 17:31   #1
phpcreator
Пользователь
 
Регистрация: 09.09.2009
Сообщений: 18
По умолчанию С++. Функция в функции = ошибка

Здравствуйте, делаю курсачь и вот столкнулся с такой проблемкой. Создал две функции находящиеся одна в другой, выдало ошибку. Что именно неправильно сделал не могу понять
Код:
void change(void)
{char nameX[70],nameY[70];
    cout<<"<-----------------Izmenenie naimenovania Tovara---------------->"<<endl; 
    cout<<"\nVvedite prejnee naimenovanie tovara: ";
    cin>>nameX;
    cout<<"\nVvedite novoe naimenovanie tovara: ";
    cin>>nameY;
    
    void zamena(Ttovar *fas)
    {
    if (!strcmp(fas->name,nameX)) fas->name=nameY;
    if (fas->right!=NULL) zamena(fas->right);
    if (fas->left!=NULL) zamena(fas->left);
    }
    zamena(koreni);
}
phpcreator вне форума Ответить с цитированием
Старый 01.10.2009, 17:46   #2
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

Нельзя делать вложенные функции.
Код:
  void zamena(Ttovar *fas)
    {
    if (!strcmp(fas->name,nameX)) fas->name=nameY;
    if (fas->right!=NULL) zamena(fas->right);
    if (fas->left!=NULL) zamena(fas->left);
    }

void change(void)
{char nameX[70],nameY[70];
    cout<<"<-----------------Izmenenie naimenovania Tovara---------------->"<<endl; 
    cout<<"\nVvedite prejnee naimenovanie tovara: ";
    cin>>nameX;
    cout<<"\nVvedite novoe naimenovanie tovara: ";
    cin>>nameY;
    
    zamena(koreni);
}
ds.Dante вне форума Ответить с цитированием
Старый 01.10.2009, 23:34   #3
phpcreator
Пользователь
 
Регистрация: 09.09.2009
Сообщений: 18
По умолчанию

нашел ошибку вот правильный код:
Код:
void zamena(Ttovar *fas, char nameX[70], char nameY[70])
{
    if (!strcmp(fas->name,nameX)) strcpy(fas->name,nameY); 
    if (fas->right!=NULL) zamena(fas->right,nameX,nameY);
    if (fas->left!=NULL) zamena(fas->left,nameX,nameY);
}

void change(void)
{char nameX[70],nameY[70];
    cout<<"<-----------------Izmenenie naimenovania Tovara---------------->"<<endl; 
    cout<<"\nVvedite prejnee naimenovanie tovara: ";
    cin>>nameX;
    cout<<"\nVvedite novoe naimenovanie tovara: ";
    cin>>nameY;
    

    zamena(koreni,nameX,nameY);
}
phpcreator вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++. ошибка в функции. phpcreator Помощь студентам 4 16.09.2009 18:42
Ошибка в функции вывода новостей smn1 PHP 2 07.09.2009 08:09
Ошибка линвки (функция sprintf) LukS C/C++ Сетевое программирование 21 25.01.2009 13:58
ошибка в inline функции Tan4ik Помощь студентам 2 04.05.2008 21:26
Функция в параметре другой функции.. templllar Помощь студентам 2 14.04.2008 14:56