seo站长工具 论坛,在线教育网站建设投标书,wordpress思维导图,网页设计培训点【题目描述】停车场管理。设有一个可以停放n辆汽车的狭长停车场#xff0c;它只有一个大门可以供车辆进出。车辆按到达停车场时间的先后次序依次从停车场最里面向大门口处停放 (即最先到达的第一辆车停放在停车场的最里面) 。如果停车场已放满n辆车#xff0c;则以后到达的车…【题目描述】停车场管理。设有一个可以停放n辆汽车的狭长停车场它只有一个大门可以供车辆进出。车辆按到达停车场时间的先后次序依次从停车场最里面向大门口处停放 (即最先到达的第一辆车停放在停车场的最里面) 。如果停车场已放满n辆车则以后到达的车辆只能在停车场大门外的便道上等待一旦停车场内有车开走则排在便道上的第一辆车可以进入停车场。停车场内如有某辆车要开走则在它之后进入停车场的车都必须先退出停车场为它让路待其开出停车场后这些车辆再依原来的次序进场。每辆车在离开停车场时都应根据它在停车场内停留的时间长短交费停留在便道上的车不收停车费。编写程序对该停车场进行管理。 输入数据时先输入一个整数n(n≤10)再输入若干组数据每组数据包括三个数据项汽车到达或离开的状态A表示到达、D表示离开、E表示结束、汽车号码、汽车到达或离开的时刻。 若有车辆到达则输出该汽车的停车位置若有车辆离开则输出该汽车在停车场内停留的时间。 【代码】
#include stdio.h
struct Car {char status;int num;int time;
};
int main(void) {int n;scanf(%d, n);struct Car park[n], street[100];getchar();int now_n 0, s_n 0;while (1) {struct Car car;scanf(%c %d %d, car.status, car.num, car.time);if (car.status E) {break;}else if (car.status A) {if (now_n n) { //当前有空余车位 park[now_n] car;printf(%d号车停入%d号位\n, car.num, now_n1);now_n;}else {street[s_n] car;printf(%d号车在便道上等待\n, car.num);s_n;}}else if (car.status D) {int i 0, j;for (i0; inow_n; i) {if (car.num park[i].num) {break;}}printf(%d号车出停车场停留时间%d\n, car.num, car.time - park[i].time);for (ji1; jnow_n; j) {park[j-1] park[j];}now_n--;if (s_n) {printf(%d号车停入3号位\n, street[0].num);now_n; park[n-1] street[0];park[n-1].time car.time;for (i1; is_n; i) {street[i-1] street[i];}s_n--;}}}return 0;}