#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