第一次用堆栈实在不会帮我看看错在哪里啊啊

skw172389774 2012-06-28 09:19:29
#include "stdio.h"
#include "stdlib.h"
#include "stack.h"
#define MAXSIZEPARK 2
#define MAXSIZETEMPLINE 2
#define COST 20
typedef struct
{
int ID;
int time;
char option;
}carinfo; //定义了车的类型

int main(void)
{
carinfo car,b;
SqStack parking,temp;
initstack(parking);
initstack(temp);
printf("||************ | 停 车 场 管 理 系 统 |*************||\n");
printf("||******************* | 说 明 |********************||\n");
printf("停车场可停放%d辆车! 便道可停放%d辆车! 停车每小时%d元!\n\n",MAXSIZEPARK,MAXSIZETEMPLINE,COST);
printf("||***************************************************||\n");
while(1)
{
printf("\n请输入A/D/E,车牌号,时刻:");
scanf("%c,%d,%d",&car.option,&car.ID,&car.time);
if(car.option=='e'||car.option=='E')
exit(0);
else
switch(car.option)
{
case 'a':
case 'A':
{
if(push(parking,&car)==0)
printf("success");
else
printf("车牌号为%d的车,%d时开进停车场!\n",car.ID,car.time);
}
break;
case 'd':
case 'D':
while(car.ID!=b.ID)
{
pop(parking,&b);
push(temp,&b);
}
}
}
return 0;
}
头文件。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
typedef struct
{
int *top;
int *base;
int stacksize;
}SqStack; //定义堆栈
void initstack(SqStack &s)
{
s.base=(int *)malloc(MAXSIZEPARK *sizeof(carinfo));
if(!s.base)exit(1);
s.top=s.base;
s.stacksize=MAXSIZEPARK;
}
int push(SqStack &s,carinfo t)
{
if(s.top-s.base>=s.stacksize)
{
printf("停车场已满将车放到临时车道\n");
return 0;
}
else
{
*s.top++=*t;
return 1;
}
}
int pop(SqStack &s,carinfo &t)
{
if(s.base==s.top)
{
printf("停车场没有车\n");
return 0;
}
else
{
*t=*s.top--;
return 1;
}
}
错误代号。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
>c:\users\傻娜\documents\visual studio 2010\projects\2222\2222\stack.h(7): error C2143: syntax error : missing ')' before '&'
1>c:\users\傻娜\documents\visual studio 2010\projects\2222\2222\stack.h(7): error C2143: syntax error : missing '{' before '&'
1>c:\users\傻娜\documents\visual studio 2010\projects\2222\2222\stack.h(7): error C2059: syntax error : '&'
1>c:\users\傻娜\documents\visual studio 2010\projects\2222\2222\stack.h(7): error C2059: syntax error : ')'
1>c:\users\傻娜\documents\visual studio 2010\projects\2222\2222\stack.h(14): error C2143: syntax error : missing ')' before '&'
1>c:\users\傻娜\documents\visual studio 2010\projects\2222\2222\stack.h(14): error C2143: syntax error : missing '{' before '&'
1>c:\users\傻娜\documents\visual studio 2010\projects\2222\2222\stack.h(14): error C2059: syntax error : '&'
1>c:\users\傻娜\documents\visual studio 2010\projects\2222\2222\stack.h(14): error C2059: syntax error : ')'
1>c:\users\傻娜\documents\visual studio 2010\projects\2222\2222\stack.h(27): error C2143: syntax error : missing ')' before '&'
1>c:\users\傻娜\documents\visual studio 2010\projects\2222\2222\stack.h(27): error C2143: syntax error : missing '{' before '&'
1>c:\users\傻娜\documents\visual studio 2010\projects\2222\2222\stack.h(27): error C2059: syntax error : '&'
1>c:\users\傻娜\documents\visual studio 2010\projects\2222\2222\stack.h(27): error C2059: syntax error : ')'
1>c:\users\傻娜\documents\visual studio 2010\projects\2222\2222\1.c(18): warning C4013: 'initstack' undefined; assuming extern returning int
1>c:\users\傻娜\documents\visual studio 2010\projects\2222\2222\1.c(36): warning C4013: 'push' undefined; assuming extern returning int
1>c:\users\傻娜\documents\visual studio 2010\projects\2222\2222\1.c(46): warning C4013: 'pop' undefined; assuming extern returning int
1>
...全文
188 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
skw172389774 2012-06-28
  • 打赏
  • 举报
回复
那s.base是不是要变成s->base
skw172389774 2012-06-28
  • 打赏
  • 举报
回复
哦我去试试
Athenacle_ 2012-06-28
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]

被你看出来了确实是严奶奶堆栈我只能看看他的书啊大学课本伤不起啊
[/Quote]

书不错,但伪代码不行、、

把所有的函数声明、定义中的&改成*,调用函数的时候增加一次寻址。。。

C的函数形参里面不能有引用
skw172389774 2012-06-28
  • 打赏
  • 举报
回复
哎好吧主要有点小急了明天叫要交了,还有个把队列没写来呢。5555555
吃饭去。一上午了好累啊,知道的知识太少了百度也不灵了。。。。
酱油党 2012-06-28
  • 打赏
  • 举报
回复
你对比着看,不就能明白啦!~如果还看不明白,翻书吧!~基础要过关啊
skw172389774 2012-06-28
  • 打赏
  • 举报
回复
没用过/*...*/啊我在想注释了一条语句有时别的语句部署会错比如注释了int xx;
skw172389774 2012-06-28
  • 打赏
  • 举报
回复
具体用/*...*/注释掉是注释没条语句吗
skw172389774 2012-06-28
  • 打赏
  • 举报
回复
被你看出来了确实是严奶奶堆栈我只能看看他的书啊大学课本伤不起啊
赵4老师 2012-06-28
  • 打赏
  • 举报
回复
偶遇到类似问题都是用
“每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。”
的方法解决的。
Athenacle_ 2012-06-28
  • 打赏
  • 举报
回复
int pop(SqStack &s,carinfo &t)

似乎又是一个抄严奶奶的伪C代码的可怜的孩纸

skw172389774 2012-06-28
  • 打赏
  • 举报
回复
主要思路仅仅是建立从一个堆栈建立初始化函数initstack入堆栈函数push出堆栈函数pop;
在堆栈中储存的是typedef struct
{
int ID;
int time;
char option;
}carinfo类型的数据
只要完成这就可以了
skw172389774 2012-06-28
  • 打赏
  • 举报
回复
我郁闷啊主要是编译器不给我明确的提示而我又找不出明确的错误。那些缺的符号我都找了一遍没发现有遗漏的啊。
skw172389774 2012-06-28
  • 打赏
  • 举报
回复
没看明白啊,
酱油党 2012-06-28
  • 打赏
  • 举报
回复
#include "stdio.h"
#include "stdlib.h"
#include <stack>
#define MAXSIZEPARK 2
#define MAXSIZETEMPLINE 2
#define COST 20

typedef struct
{
int *top;
int *base;
int stacksize;
}SqStack; //定义堆栈

typedef struct
{
int ID;
int time;
char option;
}carinfo; //定义了车的类型

void initstack(SqStack &s)
{
s.base=(int *)malloc(MAXSIZEPARK *sizeof(carinfo));
if(!s.base)exit(1);
s.top=s.base;
s.stacksize=MAXSIZEPARK;
}
int push(SqStack &s,carinfo t)
{
if(s.top-s.base>=s.stacksize)
{
printf("停车场已满将车放到临时车道\n");
return 0;
}
else
{
//*s.top++=*t;
return 1;
}
}
int pop(SqStack &s,carinfo &t)
{
if(s.base==s.top)
{
printf("停车场没有车\n");
return 0;
}
else
{
//*t=*s.top--;
return 1;
}
}




int main(void)
{
carinfo car,b;
SqStack parking,temp;
initstack(parking);
initstack(temp);
printf("||************ | 停 车 场 管 理 系 统 |*************||\n");
printf("||******************* | 说 明 |********************||\n");
printf("停车场可停放%d辆车! 便道可停放%d辆车! 停车每小时%d元!\n\n",MAXSIZEPARK,MAXSIZETEMPLINE,COST);
printf("||***************************************************||\n");
while(1)
{
printf("\n请输入A/D/E,车牌号,时刻:");
scanf("%c,%d,%d",&car.option,&car.ID,&car.time);
if(car.option=='e'||car.option=='E')
exit(0);
else
switch(car.option)
{
case 'a':
case 'A':
{
if(push(parking,car)==0)
printf("success");
else
printf("车牌号为%d的车,%d时开进停车场!\n",car.ID,car.time);
}
break;
case 'd':
case 'D':
while(car.ID!=b.ID)
{
pop(parking,b);
push(temp,b);
}
}
}
return 0;
}//真乱套啊。逻辑自己在看看,没有改逻辑
skw172389774 2012-06-28
  • 打赏
  • 举报
回复
哎一上午了实在找不到啊
skw172389774 2012-06-28
  • 打赏
  • 举报
回复
额应该吧其实stack.h好多都是数据结构书上的我看符合我要求就copy了下
skw172389774 2012-06-28
  • 打赏
  • 举报
回复
不懂啊 我初学者啊啥源文件,我只知道头文件。。。。。难到头文件不能放函数吗。。。。
c_losed 2012-06-28
  • 打赏
  • 举报
回复
从提示看问题出在stack.h
jiuchang 2012-06-28
  • 打赏
  • 举报
回复
你应该把结构定义在一个头文件中,然后函数实现在一个源文件中,不要在头文件中写函数的实现代码
skw172389774 2012-06-28
  • 打赏
  • 举报
回复
对于函数的传递我已经晕了,还有* &啥的我已经无力了
加载更多回复(1)

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧