В моем исследовании я должен запрограммировать систему, которая получает структуру квартир, которая содержит: код квартиры, цену, количество комнат и т. Д.
В другой части системы, когда список квартир включаетКвартиры, я должен построить функцию, которая распечатывает, чтобы просмотреть все квартиры, которые отвечают всем требованиям пользователя.например, для этой команды от пользователя: «PRINT maxRooms 5 Price 20000» функция отсканирует Список квартир и напечатает только те квартиры, которые имеют максимум 5 комнат и их цена меньше 20000.
I 'я инициализирую эти локальные переменные в -1, и теперь я нахожусь в стадии, когда моя локальная переменная отличается от -1, пользователь запрашивает этот фильтр.Для простоты предположим, что у нас есть только три критерия: цена, максимальное количество номеров, минимальное количество номеров.
Я пытаюсь избежать этой ситуации:
#define UNDEFINED_FILLTER -1
while (currentAprt != NULL)
{
if (maxPrice == UNDEFINED_FILLTER)
{
if (MinimumNumOfRooms == UNDEFINED_FILLTER)
{
if (MaximumNumOfRooms == UNDEFINED_FILLTER)
{
if (1 /*dateofevcation == undefined*/)
{
printf("Apartment code: %d\nApartment address: %s\n Apartment price: %d\n", currentAprt->code,currentAprt->address,currentAprt->price);
printf("Number of rooms: %d\nPossible entry date: %s\nAdding date: %s",currentAprt->numOfRooms,currentAprt->enteryDate,currentAprt->addingDate);
}
else
{
//check date of evacuation criteria
}
}
else
{
//check maximum number of rooms and date of evacuation criteria
}
}
else
{
//check minimum number of rooms, maximum number of rooms and date of evacuation criteria
}
}
else
{
//check max price, minimum number of rooms, maximum number of rooms and date of evacuation criteria
}
currentAprt = currentAprt->next;
}
МОЙ ВОПРОС: Есть ли какой-нибудь простой способ проверить, написал ли пользователь команду с критериями, проверить ее и перейти к следующим критериям?или единственный способ написать это с помощью операторов if-else?