2011-11-02 5 views
0

해야 어떤 하나 개의 도움이 있었다. 이 두 줄의 코드에 오류가 발생했습니다. 그는 C와 같은 언어의 경우 num_red - count_red = red_pot;// all defined as 0왼쪽 피연산자는 리터 값

while (count_red = 0 && count_yellow = 0 && count_green = 0 && count_brown = 0 && count_blue = 0 && count_pink = 0) 
     { 
      if (count_black = 0) 
      { 
       score = score + 7; 
       printf("Score: %d\n", score); 
       num_balls = num_balls - 1; 
      } 

     } 
+2

되는 언어? – Johnsyweb

+5

거의 모든 곳에서'='를 사용하면'=='을 원할 것입니다. –

+2

'num_red - count_red' 표현식에 값을 할당 할 수 없습니다. 표현식의 값은 코드가 아닌 산술 규칙에 의해 결정됩니다. –

답변

5

, 당신은 평등 검사에 대한 ==하지 = 사용해야합니다. 단일 =할당 그래서입니다 :

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

은 괜찮지 만 :

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

, 그것은 컴파일하는 경우에도, 당신이 무엇을 기대하지 않습니다.

당신은 당신의 코드에서 고전적인 예를 들어 있습니다. 세그먼트는 : count_black가 영일 때

if (count_black = 0) blah; 

blah을 실행하지 않습니다. 그것은count_blackcount_blah = 0가 제로 결과가 0 (거짓) 이후 꾸준히 적 blah 실행을 거부하도록 설정 것이다. 당신은 평등합니다


는 :

num_red - count_red == red_pot 

이 사실로를, 당신은 다른 두 "알려진"사람에 따라 (하나 "알 수없는") 그 변수 중 하나를 지정해야합니다. red_potcount_red 안다면

red_pot = num_red - count_red; 

대안, 함께 설정 num_red : 예를 들어, num_redcount_red 및 안다면와 red_pot 설정

num_red = count_red + red_pot; 
+0

대단히 감사합니다. 오류는 이제 사라졌습니다. 매우 감사. 건배 남자들 –

관련 문제