2016-04-27 53 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