#include<stdlib.h>
#include<string.h>
typedef struct sta
{
char *base;
char *top;
int stacksize;
}stack;
stack InitStack (stack p,int n)
{
p.stacksize =n+1;
p.base = (char *)malloc(p.stacksize * sizeof(char));
if (p.base== NULL)
{
printf("初始化栈失败\n");
exit(0);
}
p.top = p.base;
return p;
}
stack push(stack p,char e[20])
{
if(p.top-p.base>=p.stacksize)
{
printf("社团人数已满,接下来输入学生将进入等待序列");
return p;
}
*p.top=e[20];
p.top++;
return p;
}
int stackfull(stack p)
{
if(p.top-p.base>=p.stacksize)
return 0;
else
return p.top-p.base;
}
char Pop (stack p)
{
if (p.base==p.top)
{
printf("栈为空栈,无法出栈 ");
exit(0);
}
p.top--;
return *p.top;
}
void DisplyStack (stack p)
{
if (p.base==p.top)
{
printf("栈为空栈,无法遍历\n");
return;
}
printf("栈中元素为:");
printf("顶端[");
while (p.top != p.base)
{
p.top--;
printf("%s-", *p.top);
}
printf("]底端\n");
}
int main()
{
stack p[20],q;int n,i,m,k;
printf("输入社团总数\n");
scanf("%d",&i);
printf("输入每个社团的最大人数\n");
scanf("%d",&n);
p[20].stacksize=n+1;
q.stacksize=1000;
q=InitStack(q,1000);
for(m=0;m<i;m++)
{
char name[20];int d,u;
p[m]=InitStack(p[m],n);
printf("输入第%d个社团名称",m);
scanf("%s",name);
p[m]=push(p[m],name);
printf("输入拟加入第%d个社团的学生人数",m);
scanf("%d",&u);
printf("输入加入第%d个社团的学生名称",m);
for(d=0;d<n;d++)
{
gets(name);
p[m]=push(p[m],name);
}
if(u>n)
{
for(d=0;d<u-n;d++)
{
gets(name);
q=push(q,name);
}
}
}
if(q.top-q.base>0)
{
int y,b;char s[20];
printf("以下社团有空位");
for(m=0;m<i;m++)
{
if(stackfull(p[m])>0)
{
printf("%d,",m);
puts(p[m].base);
}
}
for(y=0;y<q.top-q.base;y++)
{
printf("请选择新社团加入,输入社团前的数字");
scanf("%d",&b);
s[20]=Pop(q);
p[b]=push(p[b],s);
}
}
for(m=0;m<i;m++)
{
DisplyStack (p[m]);
}
}
为什么我的运行后会无法运行,没显示错误,直接退出了?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- threenewbee 2019-10-20 09:36关注
应该是指针方面的问题,但是你代码没有贴对,for(m=0;m { 这都是什么鬼。
没法帮你调试。你自己认真调试下吧。解决 无用评论 打赏 举报
悬赏问题
- ¥15 python的qt5界面
- ¥15 无线电能传输系统MATLAB仿真问题
- ¥50 如何用脚本实现输入法的热键设置
- ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
- ¥30 深度学习,前后端连接
- ¥15 孟德尔随机化结果不一致
- ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
- ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
- ¥15 谁有desed数据集呀
- ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100