no2

Run Settings
LanguageC
Language Version
Run Command
/** * @file 2Lab1No2.c * @author Коваленко В.А, гр. 515-В * @date 3 травня 2022 * @brief Лабораторна робота No 1 * * Розгалуження та вибір. Завдання 2 */ #include <stdio.h> #include <locale.h> #include "train.h" int main() { //Подключаем русский язык setlocale(LC_ALL, "rus"); int place, loc, coupeside, coupe, wc; printf("Введите номер вашего места:"); scanf("%d", &place); loc = up_down(place); if (loc == ERR) { printf("Данного места не существует"); return ERR; } if (loc) printf("У вас верхнее место\n"); else printf("У вас нижнее место\n"); coupeside = coupe_side(place); if (coupeside) printf("У вас место в купе\n"); else printf("У вас боковое место\n"); coupe = coupe_num(place); coupe_num_print(coupe); wc = wc_distance(place, coupe); printf("\nБлижайший туалет находится в %d м от вас", wc); return 0; }
#ifndef TRAIN_H #define TRAIN_H #define PUBLIC #define PRIVATE static #define ERR -1 PUBLIC int coupe_side(int place); PUBLIC int coupe_num(int place); PUBLIC void coupe_num_print(int coupe); PUBLIC int wc_distance(int place, int coupe); #endif
#include "train.h" #include <stdio.h> #define SEAT_MIN 1 #define SEAT_MAX 54 const int COUPE_L = 2; //Константа с значением длины купе //Функция для проверки корректности номера PRIVATE int place_check(int place) { return SEAT_MIN <= place && place <= SEAT_MAX; } //Функция для проверки верхней/нижний полки PUBLIC int up_down(int place) { return place_check(place) ? place % 2 == 0 : ERR; } //Функция для нахождения где находится место(купе / бокове) PUBLIC int coupe_side(int place) { return place_check(place) ? place <= 36 : ERR; } //Функция для нахождения бокового места PUBLIC int coupe_num(int place) { return place_check(place) ? coupe_side(place) ? (place + 3) / 4 : ((54 - place) / 2) + 1 : ERR; } //Функция для вывода номера купе римскими цифрами PUBLIC void coupe_num_print(int coupe) { printf("Купе под номером:"); switch (coupe) { case 1: printf("I"); break; case 2: printf("II"); break; case 3: printf("III"); break; case 4: printf("IV"); break; case 5: printf("V"); break; case 6: printf("VI"); break; case 7: printf("VII"); break; case 8: printf("VIII"); break; case 9: printf("IX"); break; } } //Функция для нахождения расстояния до туалета PUBLIC int wc_distance(int place, int coupe) { return place_check(place) ? coupe <= 4 ? COUPE_L * coupe : (10 - coupe) * COUPE_L - 1 : ERR; }
Editor Settings
Theme
Key bindings
Full width
Lines