zoukankan      html  css  js  c++  java
  • 【C语言程序设计试验与习题指导】试验十三 3 [未完成]

    #include <stdio.h>
    #include <assert.h>
    #define MAX_N 10
    
    int in_car_num = 0;
    
    struct cars{
        int id;
        int in_time;
    };
    
    void come_in_car(int c_id, int c_time, int number_of_parking, struct cars *in_car, struct cars *waiting_car);
    void init_cars(struct cars *car_ptr, int num);
    int find_available_parking_index(struct cars *car_ptr);
    void pass_space(void);
    
    int main(void){
        struct cars in_car[MAX_N], waiting_car[MAX_N];
        int number_of_parking, c_id, c_time, is_break;
        char order;
        init_cars(in_car, MAX_N); init_cars(waiting_car, MAX_N);
        is_break = 0;
        scanf("%d", &number_of_parking);
        pass_space();
        while (1) {
            if (is_break) {
                break;
            }
            scanf("%c%d%d", &order, &c_id, &c_time);
            pass_space();
            switch (order) {
                case 'A':
                    come_in_car(c_id, c_time, number_of_parking, in_car, waiting_car);
                    break;
                case 'D':
                    ;
                    break;
                case 'E':
                    is_break = 1;
                    break;
                default:
                    printf("你的输入命令有错
    ");
                    break;
            }
            
        }
        
        return 0;
    }
    
    void pass_space(void){
        while (getchar()!= '
    ');
    }
    
    /* 初始化车辆信息 */
    void init_cars(struct cars *car_ptr, int num){
        for (; num > 0; num--) {
            car_ptr->id = -1;
            car_ptr++;
        }
    }
    
    /* 查找可用的车位索引*/
    int find_available_parking_index(struct cars *car_ptr){
        int i;
        for (i = 0; i < MAX_N; i++) {
            if (car_ptr->id == -1){
                return i;
            }
            car_ptr++;
        }
        assert(0);
        return 0;
    }
    
    
    /* 停车等级信息处理 */
    void come_in_car(int c_id, int c_time, int number_of_parking, struct cars *in_car, struct cars *waiting_car){
        int c_index;
        if (in_car_num < number_of_parking) {
            c_index = find_available_parking_index(in_car);
            in_car[c_index].id = c_id;
            in_car[c_index].in_time = c_time;
            in_car_num++;
            printf("%d号车停入%d号位
    ", c_id, c_index+1);
        }else{
            printf("%d号车在变道上等待
    ", c_id);
            c_index = find_available_parking_index(waiting_car);
            waiting_car[c_index].id = c_id;
        }
    }
  • 相关阅读:
    二维码登录网页版微信的实现方式分析
    扒取网站内容(后台方法和前台方法的两种实现)
    网站基本架构模式以及优化方案
    JS 日期对象在浏览器间的若干差异
    Web Farm 和Web Garden
    邓白氏申请和查询
    Xcode 真机调试报错:This application's application-identifier entitleme
    libc++abi.dylib`__cxa_throw: 使用[AVAudioPlayer play]会产生__cxa_throw异常
    ios 瀑布流的那些事情
    ios UIImage 圆形图片剪切方案
  • 原文地址:https://www.cnblogs.com/sidianok/p/15387452.html
Copyright © 2011-2022 走看看