什么是;如果(n/10)“;你的意思是C?
我不明白“如果(n/10)”是什么意思。看起来不像是除法什么是;如果(n/10)“;你的意思是C?,c,C,我不明白“如果(n/10)”是什么意思。看起来不像是除法 #include <stdio.h> / * printd: print n in decimal * / void printd(int n) if (n < O) { putchar ('-'); if (n / 10) printd(n / 10); putchar(n % 10 + '0'); #包括 /*打印D:以十进制打印n*/ 无效打印D(
#include <stdio.h>
/ * printd: print n in decimal * /
void printd(int n)
if (n < O) {
putchar ('-');
if (n / 10)
printd(n / 10);
putchar(n % 10 + '0');
#包括
/*打印D:以十进制打印n*/
无效打印D(整数n)
如果(n
对于C中的条件表达式,零被视为false,其他所有内容都被视为true
因此,声明:
if (n / 10)
与以下内容相同:
if (n / 10 != 0)
换句话说,只要n
不在-9
和9
之间,则执行if
语句的主体。这是从C99开始的所有C标准的情况(当除法的一个或多个输入为负时,C90具有实现定义的结果)
就您提供的代码而言,它充斥着语法错误,因此您需要在从中获得有用的信息之前先将其清理干净。我无法发布我想问的问题。因此,我只是复制并粘贴一个随机问题。\n不要发布随机代码;这会导致更多问题。
n/10
为什么不像除法?是什么看起来像?除法看起来像什么?你所说的关于n
的值自1999年以来在标准C上是正确的。这在之前的标准C中是不正确的-在1989年的C标准中,没有规定整数除法的舍入是否朝向零。@Peter,当我谈到C时,它通常是当前的标准,而不是t中的标准二十多年前。这也是我不关心TurboC的原因:-)但是,为了完整性,我会稍微调整一下答案。我的评论是为了完整性。谢谢。我仍然不知道它在什么条件下运行。只有0/10=0对吗?所以只要n!=0,它就会运行。但是在b中ook编写代码是为了将数字转换为字符串。那么如何测试它是否是字符串呢?@jessie,在C整数除法中,0/10到9/10将为零。在现代C(C99+)中-9/10到-1/10也将为零。