Загрузка данных


#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#include "door_struct.h"

#define DOORS_COUNT 15
#define MAX_ID_SEED 10000

void initialize_doors(struct door *doors);
void close_doors(struct door *doors, int count);
void sort_doors(struct door *doors, int count);
void swap_doors(struct door *first, struct door *second);
void output_doors(const struct door *doors, int count);

int main(void) {
    struct door doors[DOORS_COUNT];

    initialize_doors(doors);
    close_doors(doors, DOORS_COUNT);
    sort_doors(doors, DOORS_COUNT);
    output_doors(doors, DOORS_COUNT);

    return 0;
}

void close_doors(struct door *doors, int count) {
    for (int i = 0; i < count; i++) {
        doors[i].status = 0;
    }
}

void sort_doors(struct door *doors, int count) {
    for (int i = 0; i < count - 1; i++) {
        for (int j = 0; j < count - i - 1; j++) {
            if (doors[j].id > doors[j + 1].id) {
                swap_doors(&doors[j], &doors[j + 1]);
            }
        }
    }
}

void swap_doors(struct door *first, struct door *second) {
    struct door temp = *first;
    *first = *second;
    *second = temp;
}

void output_doors(const struct door *doors, int count) {
    for (int i = 0; i < count; i++) {
        printf("%d, %d", doors[i].id, doors[i].status);
        if (i != count - 1) {
            printf("\n");
        }
    }
}

// Doors initialization function
// ATTENTION!!!
// DO NOT CHANGE!
void initialize_doors(struct door *doors) {
    srand(time(0));

    int seed = rand() % MAX_ID_SEED;
    for (int i = 0; i < DOORS_COUNT; i++) {
        doors[i].id = (i + seed) % DOORS_COUNT;
        doors[i].status = rand() % 2;
    }
}



#ifndef DOOR_STRUCT_H
#define DOOR_STRUCT_H

struct door {
    int id;
    int status;
};

#endif