#include <stdio.h>
#include <locale.h>
#include <ctype.h>
#include "functions.h"
#include <stdbool.h>
int main() {
setlocale(LC_CTYPE, "ukr");
int n;
extern int is_valid(int n);
extern int get_entrance_number(int n);
extern int get_floor_number(int n);
extern int get_rooms_number(int n);
extern int get_balconies_number(int n);
// Запитати користувача про 4 числа
printf("Введіть номер квартири: ");
scanf("%d", &n);
if (is_valid(n) == false) {
printf("Некоректні дані.");
}
else {
printf("Номер під'їзду: %d\n", get_entrance_number(n));
printf("Номер поверху: %d\n", get_floor_number(n));
printf("Кількість кімнат: %d\n", get_rooms_number(n));
printf("Кількість балконів/лоджій: %d\n", get_balconies_number(n));
}
return 0;
}
#ifndef FUNCTIONS_H
#define FUNCTIONS_H
#define PUBLIC
#define ESEATRANGE -1
PUBLIC int get_entrance_number(int n);
PUBLIC int get_floor_number(int n);
PUBLIC int get_rooms_number(int n);
PUBLIC int get_balconies_number(int n);
#endif // !FUNCTIONS_H
#include "functions.h"
#define FLAT_MIN 1
#define FLAT_MAX 144
PUBLIC int is_valid(int n) {
return n >= FLAT_MIN && n <= FLAT_MAX;
}
PUBLIC int get_entrance_number(int n) {
if (n <= 48) {
return is_valid(n) ? n = 1 : ESEATRANGE;
}
if (n > 48 && n <= 96) {
return is_valid(n) ? n = 2 : ESEATRANGE;
}
else {
return is_valid(n) ? n = 3 : ESEATRANGE;
}
}
PUBLIC int get_floor_number(int n) {
if (n <= 48) {
return is_valid(n) ? (((n - 1) / 4) + 1) : ESEATRANGE;
}
if (n > 48 && n <= 96) {
return is_valid(n) ? (((n - 1) / 4) + 1) - 12 : ESEATRANGE;
}
else {
return is_valid(n) ? (((n - 1) / 4) + 1) - 24 : ESEATRANGE;
}
}
PUBLIC int get_rooms_number(int n) {
if (n % 4 == 0) {
return is_valid(n) ? n = 7 : ESEATRANGE; //((n - 1) / 4) + 1
}
else {
return is_valid(n) ? n = 5 : ESEATRANGE;
}
}
PUBLIC int get_balconies_number(int n) {
if (n % 4 == 0) {
return is_valid(n) ? n = 4 : ESEATRANGE; //((n - 1) / 4) + 1
}
if (n % 4 == 1) {
return is_valid(n) ? n = 3 : ESEATRANGE; //((n - 1) / 4) + 1
}
else {
return is_valid(n) ? n = 2 : ESEATRANGE;
}
}