Не присваивается значение
Код:
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++;
}
{
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++;
}
Все,понял свой косяк.