2016-09-10 10 views
-4

1에서 7 사이의 값이 입력되면 프로그램은 값이 1에서 7인지를 확인하고 입력 된 숫자 배열의 값이 0이 아니라면 문제를 확인해야합니다 이 프로그램은 집 값 [0] 또는 다른 배열이 0이면, 프로그램은 그것이do while with looping with & not looping C++

do 
      { 
       cout << "Player 1\n"; 
       cout << "Please choose your location (1 to 7) => "; 
       cin >> h1in ; // player 1 enters a value 
       cin.clear();// used to clear the value if a str value is entered 
       cin.ignore(1000,'\n');// used to clear the value if a str value is entered 
       if ((h1in<1)||(h1in>7)) 
       { 
        cout << "You entered the wrong input \n\n"; 
       } 
       if(house[h1in-1]==0) 
       { 
        cout<<"jde"; 
       } 

      } while((house[h1in-1]!=0)&(h1in<1)||(h1in>7)); 
if (h1in==1) 
     { 
      for(int i=1;i<7;i++){ 

      house[0]--; 
      house[i]++; 
      if(i==6){ 
       storehouse[0]++; 
       seeds--; 
       house[0]--; 
      } 
      printout(); 

      } 

      } 
      else if(h1in==2) 
      { 
      for(int i=1;i<7;i++){ 
       house[1]--; 
       house[i+1]++; 
       if(i==6){ 
       storehouse[0]++; 
       seeds--; 
       house[1]--; 

       } 
       printout(); 
      } 
      } 
      else if(h1in==3) 
      { 
       for(int i=1;i<7;i++) 
       { 
        house[2]--; 
        house[i+2]++; 
        if(i==6){ 
        storehouse[0]++; 
        seeds--; 
        house[2]--; 
        } 
        printout(); 
       } 
      } 
      else if(h1in==4) 
      { 
       for(int i=1;i<7;i++) 
       { 
        house[3]--; 
        house[i+3]++; 
        if(i==6){ 
        storehouse[0]++; 
        seeds--; 
        house[3]--; 
        } 
        printout(); 
       } 
      } 
      else if(h1in==5) 
      { 
       for(int i=1;i<7;i++) 
       { 
        house[4]--; 
        house[i+4]++; 
        if(i==6){ 
        storehouse[0]++; 
        seeds--; 
        house[4]--; 
        } 
        printout(); 
       } 
      } 
      else if(h1in==6) 
      { 
       for(int i=1;i<7;i++) 
       { 
        house[5]--; 
        house[i+5]++; 
        if(i==6){ 
        storehouse[0]++; 
        seeds--; 
        house[5]--; 
        } 
        printout(); 
       } 
      } 
      else if(h1in==7) 
      { 
       for(int i=1;i<7;i++) 
       { 
        house[6]--; 
        house[i+6]++; 
        if(i==6){ 
        storehouse[0]++; 
        seeds--; 
        house[6]--; 
        } 
        printout(); 
       } 
      } 
+0

을'not' 더 많은 코드를 만들기 위해, 표준 C++에 의해 제공 명확하고 읽기 쉽고,'&& '대신'&'를 쓰는 것과 같은 사고를 피하십시오. 이 영역에서 약간의 문제가있는 Visual C++를 사용하면 강제 적용 방법 인 ''을 사용하여이 접근 방식을 사용할 수 있습니다. –

답변

2

&는 비트 and이다 돌아가고 루프 않았다이다. 이는 피연산자의 각 비트에 이진 and을 실행합니다. 논리가 and&& 연산자가 필요합니다.

또한 마지막 줄 수 있도록 몇 가지 괄호를 추가해야합니다 : 지금 이름`and`,`or` 등을 사용하는 것을 선호

while((house[h1in-1]!=0) && ((h1in<1)||(h1in>7))); 
+0

여전히 작동하지 않습니다 – Teeban

+0

@Teeban 귀하의 질문은 명확하지 않습니다. 또한'house [h1in-1]'이 할당 된 곳을 표시하지 않습니다. 어쩌면 당신은'와'를 전혀 원하지 않을 것이고, 대신'또는'을 찾고있을 것입니다. – anbarbata