2017-12-14 14 views
-1

私はこの機能を持っていますが、正しい入力は1-6の間でなければなりませんが、私はこの関数を呼び出すとgetchとすべてのputcharをスキップします。私は間違って何をしていますか?getchはwhileループでスキップされます

int firstNum = 0; 
    int secondNum = 0; 
    int thirdNum = 0; 
    int fourthNum = 0; 
    int counter = 0; 
    int counterMiss = 0; 
    int counterInPlace = 0; 
    int condition = 1; 
    while(firstNum<0||firstNum>6||secondNum<0||firstNum>6||secondNum<0||secondNum>6||thirdNum<0||thirdNum>6||fourthNum<0||fourthNum>6) //loop that checks for input correct 
    { 
     if(counter>0) 
     { 
      printf("enter ONLY numbers beween 1-6\n"); //if there were any incorrect input it will trigger 
     } 
     firstNum=getch(); 
     putchar(firstNum); 
     secondNum=getch(); 
     putchar(secondNum); 
     thirdNum=getch(); 
     putchar(thirdNum); 
     fourthNum=getch(); 
     putchar(fourthNum); 
     firstNum-=48; 
     secondNum-=48; 
     thirdNum-=48; 
     fourthNum-=48; 
     counter++; 
} 

答えて

0

複数の同一変数が必要な場合は、別のスカラー変数ではなく配列を使用します。このような別々の変数は醜く見え、縮尺は変わりません。

また、変数をゼロに初期化し、ゼロより小さいか6より大きいかをテストします。そうではないので、ループは実行されません。