Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Не присваивается значение

82K
28 апреля 2012 года
Finh
2 / / 28.04.2012
Код:
struct STACK
{
    char elem[255];
    int first;
    int last;
    int count;
};

void Stack()
{
    int choose;
    bool flag=0;
    STACK stack;
    stack.last=stack.first=1;
    //*stack.elem=0;
    stack.count=0;

    cout<<"Вы выбрали пункт работы со стэком"<<endl;
    while(flag==0)
    {
       cout<<"Выберите действие:"<<endl;
       cout<<"1:добавить новый элемент"<<endl;
       cout<<"2:узнать значение последнего элемента"<<endl;
       cout<<"3:узнать количество элементов в стэке"<<endl;
       cout<<"4:очистить стэк"<<endl;
       cout<<"5:выход"<<endl;
       cin>>choose;
       switch (choose)
          {
             case (1):
                 {
                     push(&stack);
                     break;
                 };
             case (2): {break;};
             case (3): {break;};
             case (4): {break;};
             case (5):
                 {
                     flag=true;
                     cout<<"Выполняется выход"<<endl;
                     break;
                 };
          }
    }
     for (int i=0;i<10;i++) cout<<stack.elem[i];

}

void push(STACK *stack)
{
    char symbol[255];
    *symbol=0;
    int j=0,i=0,x;
    for(i=0;i<255;i++) if (((stack->elem[i]>='0')&&(stack->elem[i]<='9'))||(stack->elem[i]=='/')) j++;
    cout<<endl<<j<<endl;
    if(stack->count==0)j++;

    cout<<"Введите элемент"<<endl;
    while (*symbol==0) gets_s(symbol);
    x=strlen(symbol);
    for (i=0;i<x;i++)
        {
            stack->elem[j]=symbol[i];
            j++;
        }
    stack->elem[i+1]='/';
    stack->last=i;
    stack->first=stack->last-i+1;
    stack->elem[0]='/';
    stack->count++;
}
Суть:когда второй раз вызываем функцию добавления элемента(1) строка "stack->elem[0]='/'; " игнорируется. При выводе (после ввода значений 123 и 456) массива получается 123/456ММ,хотя должно быть 123/456/М
82K
29 апреля 2012 года
Finh
2 / / 28.04.2012
Все,понял свой косяк.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог