2017-06-06 159 views
-4

我想讓用戶重新輸入數字,如果他們輸入的值不到10 我確定問題在於while語句。 這算什麼,我有c語言如果輸入了錯誤的數字再次詢問用戶

printf_s("Enter the player first name: "); 
scanf_s("%s", names[i], 25); //enters name and creates a newline <enter key>// 

printf_s("Minimum number to stop in a turn: "); 
scanf_s("%d", &min_number, sizeof(int)); 
do { 
printf_s("please enter a number greater or egual to 10"); 
} while (min_number <= 10); 
     scanf_s("%d ", &min_number); 
     printf_s("please enter a number greater or equal to 10\n\n"); 

是while循環最好的選擇一個做或者我應該看看使用另一種類型的循環

enter image description here

+3

我認爲你需要[找到一個很好的初學者書](http://stackoverflow.com/questions/562303/the-definitive-c-book-guide-和 - 列表),並閱讀更多關於「while」(兩種變體)。 –

+0

您正在使用'while'like a for',您需要正確格式化您的代碼。此外,還有一個額外的paranthesis和分號,並且在「while」開始的時候有害**和**無用 – Badda

+0

看起來您正在混淆「do ... while」和「while」循環。 – Carcigenicate

回答

0

正如我已得到糾正,thoughfully scanf函數返回的數接收成功分配的參數。 這裏是一個固定的版本:

void main(){ 
     int num = 0; 
    while(num <=10){ 
     scanf("%d ", &num); 
     printf_s("please enter a number greater or equal to 10\n\n"); 
    } 
} 

的authour在他的問題,在他的要求修改代碼後:

do { 
     printf_s("please enter a number greater or egual to 10\n\n"); 
     scanf_s("%d", &min_number); 
    } while (min_number < 10); 

當做DO /而循環的循環體是在 {體放在這裏} 一些條件);.

另一個編輯後,對作者的要求:

printf_s("Minimum number to stop in a turn: "); 
    scanf_s("%d", &min_number, sizeof(int)); 

    while(min_number < 10){ 
     printf_s("please enter a number greater or egual to 10\n\n"); 
     scanf_s("%d", &min_number); 

    } 

這將做以下它會詢問「最小號停在一轉:」如果是大於或等於10後,將繼續循環。如果不是,它會給出澄清「請輸入一個數字大於或等於10」,並會收到另一個輸入。它會循環,直到它收到更多或更多到10.

+0

我更新了我的代碼問題是如果我輸入一個大於10的數字,它會問我「請輸入一個大於或等於10的數字」,如果它小於10,它會運行循環「請輸入大於或等於10的數字「永遠。 我要去的條件是用戶租用該號碼,所以它是大於或等於10,然後繼續其餘的程序 –

+0

請檢查我的答案後編輯:) – du4ko

+0

即時通訊幾乎有問題是如果它是10或更大,我必須在程序進行之前輸入這個值兩次。 它詢問「最小數量停在一個轉彎:」然後它要求「請輸入一個數字大於或等於10」 如果它小於10它會一直詢問「請輸入一個大於或等於10的數字」,這是什麼我想 –