题目
部分正确的代码
#include<stdio.h>
#include<string.h>
struct Car{
int num;
int hour;
};
int Hour=0;
int main()
{
int n;
scanf("%d",&n);
struct Car car[n],wait[100];
char state;
int i=0,j=0,num,hour,temp,flag,is=0;
// i用来记录车库中的车辆,j用来记录便道上的车辆
//temp表示临时的循环变量,防止影响i,j的值
//flag用来记录经过查找后的目标车辆位置
while(1)
{
scanf("%c %d %d",&state,&num,&hour);
Hour++;
if(state=='E')
{
if(i==0)
{
printf("the car not in park");break;
}
printf("car#%d out,parking time %d",car[i-1].num,Hour/2-car[i-1].hour);
break;
}
else if(state=='A')
{
if(i<n)
{
if(j==0)
{
car[i].num=num;
car[i].hour=hour;
printf("car#%d in parking space #%d\n",car[i].num,i+1);
i++;
}
else
{
wait[j].num=num;
wait[j].hour=hour;
printf("car#%d waiting\n",wait[j].num);
j++;
}
}
else
{
wait[j].num=num;
wait[j].hour=hour;
printf("car#%d waiting\n",wait[j].num);
j++;
}
}
else if(state=='D')
{
for(temp=0;temp<i;temp++)
{
if(car[temp].num==num)
{
is=1;break;
}
}
if(wait[0].num==num) is=1;
if(is)
{
if(wait[0].num==num)
{
car[i].num=num;
car[i].hour=hour;
printf("car#%d in parking space #%d\n",car[i].num,i+1);
i++;
for(temp=0;temp<j-1;temp++)
{
wait[temp]=wait[temp+1];
}
j--;
}
else
{
for(temp=0;temp<n;temp++)
{
if(car[temp].num==num)
{
flag=temp;break;
}
}
// if(temp==n)
// {
// printf("the car not in park\n");
// continue;
// }
printf("car#%d out,parking time %d\n",num,hour-car[temp].hour);
for(temp=flag;temp<n-1;temp++)
{
car[temp]=car[temp+1];
}
i--;
}
}
else
printf("the car not in park\n");
is=0;
}
}
}
PTA测试点
求助
汽车号码错误的情况我已经判断了,但还是报错,希望大家能帮我看看,共同找出问题所在。