левый операнд должен быть l-значением

#c #operand

#c #операнд

Вопрос:

может ли кто-нибудь помочь. получение ошибки с этими 2 строками кода. num_red - count_red = red_pot;// all defined as 0 и

 while (count_red = 0 amp;amp; count_yellow = 0 amp;amp; count_green = 0 amp;amp; count_brown = 0 amp;amp; count_blue = 0 amp;amp; count_pink = 0)
        {
            if (count_black = 0)
            {
                score = score   7;
                printf("Score: %dn", score);
                num_balls = num_balls - 1;
            }

        }
 

Комментарии:

1. Почти везде, где у вас есть = , вы хотите == .

2. Вы не можете присвоить значение выражению num_red - count_red . Значение выражения определяется арифметическими правилами, а не вашим кодом.

3. Энтони — это была глупая ошибка с моей стороны. Спасибо,

4. Мэтт — есть идеи о том, как я мог бы обойти num_red — count_red = red_pot

5. @user, как насчет того, чтобы написать простым языком, каким вы хотите, чтобы это выражение было. Тогда мы могли бы рассказать вам, как его написать.

Ответ №1:

Если это C-подобный язык, вам нужно использовать == для проверки равенства, а не = . Единственное = значение предназначено для присваивания, чтобы:

 int seven = 7;
int five = 5;
if (seven - five == 2) ...
 

все в порядке, но:

 int seven = 7;
int five = 5;
if (seven - five = 2) ...
 

будет, даже если он компилируется, не делать то, что вы ожидаете.

У вас есть классический пример в вашем коде. Сегмент:

 if (count_black = 0) blah;
 

не будет выполняться blah , когда count_black равно нулю. Он будет установлен count_black в ноль и упорно отказывается когда-либо выполняться blah , поскольку результат count_blah = 0 равен 0 (false).


Если вы хотите, чтобы равенство:

 num_red - count_red == red_pot
 

чтобы быть истинным, вам нужно назначить одну из этих переменных («неизвестную») на основе двух других «известных». Например, если num_red и count_red известны, задайте red_pot с помощью:

 red_pot = num_red - count_red;
 

В качестве альтернативы, если red_pot и count_red известны, задайте num_red с помощью:

 num_red = count_red   red_pot;
 

Комментарии:

1. большое вам всем спасибо. ошибки теперь исчезли. очень признателен. приветствия, ребята