возможное назначение в условии (C) - PullRequest
2 голосов
/ 22 сентября 2011

Я должен найти это число "а" двухзначное нечетное. Ошибка появляется, если

#include <stdio.h>
main ()
{
    int a,k;
    int count=0;
    printf ("input number \n", a);
    scanf ("%d", &a);
    k = a % 2;
    while (a)
    {
        a /= 10;
        count ++;
    }
    if (k = 1 && count = 2)
        printf ("It is \n");
    else
        printf ("It is not \n");
    return (0);
}

Ответы [ 2 ]

5 голосов
/ 22 сентября 2011

Ошибка здесь:

if (k = 1 && count = 2)

Вы, вероятно, имели в виду:

if (k == 1 && count == 2)

= - это задание. == - это сравнение на равенство.

Кроме того, цикл не требуется. Вы можете проверить, состоит ли число из двух цифр, проверив, меньше ли оно 100 и больше или равно 10.

1 голос
/ 22 сентября 2011

GCC жалуется на это:

if (k = 1 && count = 2)

Оператор равенства - это двойной знак равенства: ==.То, что вы использовали, знак равенства =, является оператором присваивания.

Вы устанавливаете k в 1 и count в 2, и if всегда будет выполняться.

Получаемое вами сообщение призвано помочь людям быстро разобраться именно в этой проблеме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...