Как установить диапазон в диапазоне do / while в c? - PullRequest
0 голосов
/ 26 апреля 2020

Я хочу, чтобы пользователь вводил высоту в диапазоне от 2 до 8 включительно, если введено любое другое число, он должен повторно запросить пользователя ... я пробовал

int main(void)
{
    int height;
    do{
        height = get_int("Enter The Height: ");
    }
    while (height<=1 && height<=9);
    return height;
}

программа работает без ошибок но даже если я введу 9, это не выдает мне повторение ..

Ответы [ 2 ]

2 голосов
/ 26 апреля 2020

Вы хотите задать еще раз, если высота находится за пределами желаемого диапазона. Таким образом, вы хотите спросить еще раз, если высота меньше минимальной или больше максимальной.

do {
   ...
} while (height < 2 || height > 8);

Вы использовали && там, где вы должны были использовать || и <= где вы должны были использовать >=.

1 голос
/ 26 апреля 2020

Ваш лог c неверен. Это должно быть while (!(2 <= height && height <= 8)).

Например, когда height == 9 в вашей исходной логике c заканчивается false && true, то есть false.

...