Помогите с математикой в ​​Си - PullRequest
1 голос
/ 14 июля 2011

Мне нужно знать, как заставить это игнорировать число 0 при вводе 0, чтобы программа не выходила при вводе 0.

#include <stdio.h>


int main()
{
    int input = 0, previous = 0;


    do {
        previous = input;
        printf("Input Number");
        scanf("%d", &input);
    } while( input!= previous*2 );

    return 0;
}

Ответы [ 4 ]

2 голосов
/ 14 июля 2011

Выберите другое значение для previous.Попробуйте INT_MAX >> 1 из limit.h.

1 голос
/ 15 июля 2011

while (input == 0 || input! = Previous * 2) на простом английском языке это гласит: пока input равен нулю или input не равен двойной предыдущей. || это логическая операция или операция, и! = (которая, кстати, была в вашем исходном коде) означает не равно.

1 голос
/ 14 июля 2011
#include <stdio.h>


int main()
{
    int input = 0, previous = 0;

    do {
        previous = input;
        printf("Input Number");
        scanf("%d", &input);
    } while( input!= previous*2 || input==0);

    return 0;
}
1 голос
/ 14 июля 2011
    #include <stdio.h>


int main()
{
    int input = 0, previous = 0;


    do {
        previous = input;
        printf("Input Number");
        scanf("%d", &input);
    } while( input == 0 || input!= previous*2 );

    return 0;
}

Я добавил оператор ИЛИ, это означает, что если input равен 0, то он все равно продолжится, но, если он не равен 0, а второе условие выполнено, он разорвет цикл и выйдет.

...