2016-04-27 98 views
0

你好同胞編程器,半字節制約0-9

INT主() INT N;

scanf("%d", &n ,); 
printf("nibble = %d%d%d%d", (n/8)%2, (n/4)%2, (n/2)%2 , n%2); 

return 0;} 

到目前爲止,我已經構建了此代碼,代碼將十進制值轉換爲半字節。

它的工作原理,但我有關於如何限制輸入0-9, 而不使用如果statemens問題。有沒有可能做到這一點,如果如何? 目前的代碼使用0 - 15十進制。你能給我一個例子或解釋給我,所以我可以理解它。

謝謝!

回答

0

這是不可能的,而無需使用條件

,但告訴我們,如果一個小數> 9在推杆你的程序應該怎麼辦呢?

scanf("%d", &n ,); 
if ((n>=0) && (n<10)) 
    printf("nibble = %d%d%d%d", (n/8)%2, (n/4)%2, (n/2)%2 , n%2); 
else 
    printf("err: input out of range"); 
+0

但你能否給我一個可能的例子,即使有條件可能嗎? – Sali

+0

很好,謝謝你,所以&&在第二行中保險箱n> 0和n <10的輸入都正確嗎? – Sali

+0

我加了上面的例子。順便說一下,你將n聲明爲「int」 - 在大多數編譯器中它是一個有符號的變量。如果寫入「unsigned int」,則可以刪除第一個子條件(n> = 0)。 – user3336433