#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. большое вам всем спасибо. ошибки теперь исчезли. очень признателен. приветствия, ребята