7-2 停车场管理 (50分)
生活随笔
收集整理的這篇文章主要介紹了
7-2 停车场管理 (50分)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
設有一個可以停放n輛汽車的狹長停車場,它只有一個大門可以供車輛進出。車輛按到達停車場時間的先后次序依次從停車場最里面向大門口處停放 (即最先到達的第一輛車停放在停車場的最里面) 。如果停車場已放滿n輛車,則以后到達的車輛只能在停車場大門外的便道上等待,一旦停車場內有車開走,則排在便道上的第一輛車可以進入停車場。停車場內如有某輛車要開走,則在它之后進入停車場的車都必須先退出停車場為它讓路,待其開出停車場后,這些車輛再依原來的次序進場。每輛車在離開停車場時,都應根據它在停車場內停留的時間長短交費,停留在便道上的車不收停車費。編寫程序對該停車場進行管理。
輸入格式:
先輸入一個整數n(n<=10),再輸入若干組數據,每組數據包括三個數據項:汽車到達或離開的信息(A表示到達、D表示離開、E表示結束)、汽車號碼、汽車到達或離開的時刻。
輸出格式:
若有車輛到達,則輸出該汽車的停車位置;若有車輛離開,則輸出該汽車在停車場內停留的時間。如果汔車號碼不存在,輸出the car not in park
輸入樣例:
3 A 1 1 A 2 2 A 3 3 D 1 4 A 4 5 A 5 6 D 4 7 D 5 8 E 0 0輸出樣例:
car#1 in parking space #1 car#2 in parking space #2 car#3 in parking space #3 car#1 out,parking time 3 car#4 in parking space #3 car#5 waiting car#4 out,parking time 2 car#5 in parking space #3 car#5 out,parking time 1數組版
#include <stdio.h>typedef struct CAR{char zt;int num;int in; }car;int main() {int n;scanf("%d",&n);int space=1,xb;car a[100];int last,wait=-1,k=0,flag,f;do{scanf("%c %d %d",&a[k].zt,&a[k].num,&a[k].in);if(a[k].zt!='E')k++;}while(a[k].zt!='E');for(int i=0;i<k;i++){if(a[i].zt=='E'){break;}else if(a[i].zt=='A'){if(space!=n+1){printf("car#%d in parking space #%d\n",a[i].num,space);space++;}else{printf("car#%d waiting\n",a[i].num);wait=a[i].num;}}else if(a[i].zt=='D'){f=0;flag=a[i].in;for(int j=0;j<i;j++){if(a[i].num==a[j].num){f=1;last=a[i].in-a[j].in;break;}}if(f){printf("car#%d out,parking time %d\n",a[i].num,last);//此處將離開停車場的號碼設置為不作處理的號碼for(int p=0;p<k;p++){if(a[p].num==a[i].num){a[p].num=-1;}}space--;if(wait!=-1){for(int j=0;j<k;j++){if(wait==a[j].num&&a[j].zt=='A'){a[j].in=flag;break;}}printf("car#%d in parking space #%d\n",wait,space);wait=-1;}}else{printf("the car not in park\n");} }} }總結
以上是生活随笔為你收集整理的7-2 停车场管理 (50分)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎样自制固元膏 固元膏的制作方法_中药知
- 下一篇: 《绝区零》40级红深渊三层通关阵容搭配一