ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

【C语言程序设计试验与习题指导】试验十三 3 [未完成]

2021-10-09 20:34:33  阅读:163  来源: 互联网

标签:index int car parking C语言 试验 cars 习题 id


#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("你的输入命令有错\n");
                break;
        }
        
    }
    
    return 0;
}

void pass_space(void){
    while (getchar()!= '\n');
}

/* 初始化车辆信息 */
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号位\n", c_id, c_index+1);
    }else{
        printf("%d号车在变道上等待\n", c_id);
        c_index = find_available_parking_index(waiting_car);
        waiting_car[c_index].id = c_id;
    }
}

 

标签:index,int,car,parking,C语言,试验,cars,习题,id
来源: https://www.cnblogs.com/sidianok/p/15387452.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有