Цикл выполняется до бесконечности, независимо от введенного int - PullRequest
0 голосов
/ 11 октября 2018

Я сделал перерыв с тех пор, как опубликовал это и прочитал половину книги по программированию на C, которую я изучаю (книга Harvard CS50).Я должен быть в состоянии решить это сейчас, но пока не могу.

Программа работает в непрерывном цикле, независимо от того, какое целое число введено;печатает "Good for you ..." до бесконечности.

Пример кода:

//example 3 version2 from chapter 11, beginner programming in c
#include <cs50.h>
#include <stdio.h>

int main ()
{

        int prefer;

        printf("On a scale from 1 to 10, how happy are you?\n");
        scanf(" %d", &prefer);

        while(prefer >= 1  || prefer <= 10)
                //goal is for program to run while entered int "prefer" is between 1 - 10
                if (prefer > 10)
                {
                        printf("Oh really, now?  Can't follow simple directions, can you?\n");
                        printf("want to try that again?  1 through 10...?\n");
                        scanf(" %d", &prefer);
                }
                else if (prefer >= 8)
                {
                        printf("Good for you!\n");
                }
                else if (prefer <= 5)
                {
                        printf("Cheer up : )\n");
                }
                else if (prefer <= 3)
                {
                        printf("Cheer up, Buttercup!\n");
                }
                else
                {
                        printf("Get in the RIVER with that attitude!\n");
                }
        return 0;
}

1 Ответ

0 голосов
/ 11 октября 2018

Оператор < и && являются бинарными операторами.Когда мы их используем, он сравнивает значения левой и правой сторон.Вышеуказанное время выглядело бы так:

while(prefer <= 10 && prefer > 0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...