资源描述
#include"stdio.h"
#include<math.h>
#define M 100
typedef struct
{int stack[M];
int top1;
int top2;
}sqstack;
sqstack stack,*s;
inistack();
void pop();
int push(int i,int x);
void main()
{
int n,x,i,p;
s=&stack;
inistack(s);
printf("请输入要储存的数据\n");
printf("当输入0时结束输入数据\n");
scanf("%d",&n);
while(n!=0)
{
i=n%2;
push(i,n);
scanf("%d",&n);
}
printf("输入结束");
printf("\n\n");
printf("打印出输入的数字如下:\n\n");
pop();
}
inistack(sqstack *s)
{s->top1=1;
s->top2=M;
}
int push(int i,int x)
{if(s->top1-1==s->top2)
printf("栈满将要溢出\n");
if(i==1)
{s->stack[s->top2]=x;
s->top2--;
}
else
{s->stack[s->top1]=x;
s->top1++;
}
}
void pop()
{
if(s->top1<=1)
printf("栈满将要下溢出,结束\n");
else
{
printf("打印出偶数是:\n");
while(s->top1!=1)
{s->top1--;
printf("%d\t",s->stack[s->top1]);
}
printf("\n");
printf("打印出奇数是:\n");
while(s->top2!=M)
{s->top2++;
printf("%d\t",s->stack[s->top2]);
}
printf("\n");
}
}
展开阅读全文