帮忙看看,,不能运行,,编译没错

renbin5566 2010-05-31 10:56:06
# include <stdio.h>
# include <stdlib.h>
# include <time.h>
# define MAXSIZE 20
typedef struct{//定义汽车进入停车场的登记信息
char number[10];
char comedata[10];
char cometime[10];
char leavedata[10];
char leavetime[10];
}carmes;

typedef struct {//定义停车场的信息
carmes*top;
carmes*base;
int size;
}*parkmes,parkarea;


typedef struct sidewalk{//定义便道上车的信息
char carnum[10];
struct sidewalk *next;
}*sidecar,sidewalkcar;


typedef struct {
sidecar front;//队列的头指针
sidecar rear;//队列的尾指针
}sidewalkmes;


void time(char time1[],char time2[])//获取停车时间函数
{
_tzset();
_strdate(time2);
_strtime(time1);

}

void Initsidepark(sidewalkmes &sidepark)//初始化便道停车场
{
sidepark.front=(sidewalkcar*)malloc(sizeof(sidewalkcar));
if(!sidepark.front){
printf("\n\n初始化分配空间失败");
exit(1);
}
sidepark.rear=sidepark.front;
sidepark.front->next=NULL;
}


void sidewalkpark(sidewalkmes sidepark)//便道停车
{
sidewalkmes p;
printf("\n\n请输入要停车的车牌号:");
gets(sidepark.front->carnum);
p.front=(sidewalkcar*)malloc(sizeof(sidewalkcar));
if(!p.front)
{
printf("\n\n分配空间失败");
exit(1);
}
sidepark.front->next=p.front;
sidepark.front=p.front;
p.front->next=NULL;
}


void Initpark(parkmes &park)//初始化停车场
{
park->base=(carmes*)malloc(MAXSIZE*sizeof(carmes)); //申请空间 好像这里不正确可是我不知道怎么改

if(!park->base){
printf("申请空间失败");
exit(1);
}
park->top=park->base;
park->size=0;
}

void inputcarmess(parkmes park)//停入停车场输入车的信息
{
printf("\n\n\t\t请输入车牌号:");
gets(park->top->number);
time(park->top->comedata,park->top->cometime);
}

void carpark(parkmes park,sidewalkmes sidepark)//停车
{
if(park->size>=MAXSIZE){
printf("\n\n停车场已满,请暂时听到便道\n");
sidewalkpark(sidepark);
}
inputcarmess(park);
park->size++;
}

void free(parkmes park)//释放空间
{
while(park->top!=park->base){
free(park->top);
park->top--;
}
free(park->base);
}
int main()
{
parkmes park;//定义停车场变量
sidewalkmes sidepark;//定义便道变量
Initpark(park);//初始化停车场变量
Initsidepark(sidepark);//初始化便道变量

carpark(park,sidepark);//停车开始

free(park);
return 1;
}
大家帮忙看看,,,
...全文
96 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
cj83111 2010-06-01
  • 打赏
  • 举报
回复
程序做了些修改,设最多停3辆车,运行结果如下:

完整代码:

# include <stdio.h>
# include <stdlib.h>
# include <time.h>
#include <malloc.h>

# define MAXSIZE 3
typedef struct{//定义汽车进入停车场的登记信息
char number[10];
char comedata[10];
char cometime[10];
char leavedata[10];
char leavetime[10];
}carmes;

typedef struct {//定义停车场的信息
carmes* top;
carmes* base;
int size;
}*parkmes,parkarea;


typedef struct sidewalk{//定义便道上车的信息
char carnum[10];
struct sidewalk *next;
}*sidecar,sidewalkcar;


typedef struct {
sidecar front;//队列的头指针
sidecar rear;//队列的尾指针
}sidewalkmes;


void time(char time1[],char time2[])//获取停车时间函数
{
_tzset();
_strdate(time2);
_strtime(time1);

}

void Initsidepark(sidewalkmes &sidepark)//初始化便道停车场
{
sidepark.front=(sidewalkcar*)malloc(sizeof(sidewalkcar));
if(!sidepark.front)
{
printf("\n\n初始化分配空间失败");
exit(1);
}
sidepark.rear=sidepark.front;
sidepark.front->next=NULL;
}


void sidewalkpark(sidewalkmes sidepark)//便道停车
{
sidewalkmes p;
printf("\n\n请输入要停车的车牌号:");
gets(sidepark.front->carnum);
p.front=(sidewalkcar*)malloc(sizeof(sidewalkcar));
if(!p.front)
{
printf("\n\n分配空间失败");
exit(1);
}
sidepark.front->next=p.front;
sidepark.front=p.front;
p.front->next=NULL;
}


void Initpark(parkarea &park)//初始化停车场
{
park.base=(carmes *)malloc(MAXSIZE*sizeof(carmes));
//申请空间 好像这里不正确可是我不知道怎么改

if(!park.base)
{
printf("申请空间失败");
exit(1);
}
park.top=park.base;
park.size=0;

}

void inputcarmess(parkmes park)//停入停车场输入车的信息
{
printf("\n\n\t\t请输入车牌号:");
gets(park->top->number);
time(park->top->comedata,park->top->cometime);
printf("\t\t停车成功!!!车辆信息:\n");
printf("\t\t车牌:%s\n\t\tcomedata:%s\n\t\tcometime:%s",park->top->number,park->top->comedata,park->top->cometime);

}

void carpark(parkmes park,sidewalkmes sidepark)//停车
{
if(park->size>=MAXSIZE)
{
printf("警告:");
printf("\n\n停车场已满,请暂时停到便道\n");
sidewalkpark(sidepark);
}
inputcarmess(park);
park->size++;
}

void free(parkmes park)//释放空间
{
while(park->top!=park->base)
{
free(park->top);
park->top--;
}
free(park->base);
}
int main()
{
parkarea park;//定义停车场变量
sidewalkmes sidepark;//定义便道变量
parkmes park2;

//printf("%d\n",sizeof(carmes));
Initpark(park);//初始化停车场变量
park2=&park;
Initsidepark(sidepark);//初始化便道变量

while(1)
{
carpark(park2,sidepark);//停车开始
}

//free(park);
return 0;
}

cj83111 2010-06-01
  • 打赏
  • 举报
回复
改成这样,
void Initpark(parkarea &park)//初始化停车场
{
park.base=(carmes *)malloc(MAXSIZE*sizeof(carmes));
//申请空间 好像这里不正确可是我不知道怎么改

if(!park.base)
{
printf("申请空间失败");
exit(1);
}
park.top=park.base;
park.size=0;

}
对应的main函数中的也改成
parkarea park;//定义停车场变量
yunyun1886358 2010-05-31
  • 打赏
  • 举报
回复
错在这一行:
parkmes park;//定义停车场变量
你没给park分配内存怎么给park的成员赋值呢?

int main()
{
parkmes park = (parkmes)malloc(sizeof(parkarea));//定义停车场变量
sidewalkmes sidepark;//定义便道变量
Initpark(park);//初始化停车场变量
Initsidepark(sidepark);//初始化便道变量

carpark(park,sidepark);//停车开始

free(park);
return 1;
}
周靖峰 2010-05-31
  • 打赏
  • 举报
回复
不会用time.h,帮不了你
renbin5566 2010-05-31
  • 打赏
  • 举报
回复
顶。。。。
renbin5566 2010-05-31
  • 打赏
  • 举报
回复
怎么改啊。老大。。。。[Quote=引用 4 楼 zhangyafei13 的回复:]
啊,错误还不少呢,!!


void Initsidepark(sidewalkmes &sidepark)//初始化便道停车场

void Initpark(parkmes &park)//初始化停车场



time(park->top->comedata,park->top->cometime);


Initpark(park);//初始化停车场变量……
[/Quote]
zhangyafei13 2010-05-31
  • 打赏
  • 举报
回复
啊,错误还不少呢,!!


void Initsidepark(sidewalkmes &sidepark)//初始化便道停车场

void Initpark(parkmes &park)//初始化停车场



time(park->top->comedata,park->top->cometime);


Initpark(park);//初始化停车场变量
Initsidepark(sidepark);//初始化便道变量


也看不懂如何来改,问题好多。

renbin5566 2010-05-31
  • 打赏
  • 举报
回复
顶上去。。。大侠,,,help,。
renbin5566 2010-05-31
  • 打赏
  • 举报
回复
这个编译没有任何错误。。。[Quote=引用 1 楼 user0418 的回复:]
首先应先贴上错误!!!
[/Quote]
user0418 2010-05-31
  • 打赏
  • 举报
回复
首先应先贴上错误!!!

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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