2014-02-14 40 views
-5

我試圖找出用什麼語句來獲取用戶1和10如何提示用戶一定量的數字

這裏輸入之間的一些中輸入一個整數就是我至今。

int a; 
printf("Enter a number between 1 and 10: \n); 
scanf("%d", &a); 
+4

你不經意間用自己的標籤回答了你自己的問題 - 使用「while循環」。 – jrd1

+1

而這個問題是...? – herohuyongtao

回答

1
int input; 

while (true){ 
    scanf("%d",&input); 
    if (input>=1 && input<=10){ 
     // process with your input then use break to end the while loop 
    } 
    else{ 
     printf("Wrong input! try Again."); 
     continue; 
    } 
} 
+0

這是一個非常糟糕的設計。在輸入無效的情況下循環會更好,然後處理該處理。也意味着你可以擺脫人工循環條件,並在'input'上循環。作爲一個方面說明,C代碼中的「繼續」的存在幾乎總是一個糟糕的設計的某種跡象。 – Lundin

0

1到10之間的數字是正確的嗎?所以第一階段,你必須驗證,如果輸入的是整數或沒有,那麼你將檢查範圍,

下面的代碼是什麼我提到現在

#define MAX_RANGE 10 
int input; 
if (scanf("%d",&input) != 1) 
{ 
    printf ("Really bad input please enter integer number like in range 1 - 10\n"); 

} 

在第二階段如下

if (input < 1 || input > MAX_RANGE) { 
    printf("It's an integer but out of range error\n"); 
} 

你還可以使用while..loop爲同一如下

int input; 

while (scanf("%d", &input) == 1 && input > 1 && input < 10) 

{ 

    // process your input 

} 
0

爲什麼不使用do .. while循環?

int a; 

do { 
    printf("Enter a number between 1 and 10: \n"); 
    scanf("%d", &a); 
} while (a < 1 || a > 10); 
相關問題