Elo,我从旧考试中得到了这段代码片段。这很棘手,我需要一些帮助来弄清楚它是如何打印“007”的。
#include <stdio.h>
/* Desmond Llewelyns */
int M(int Q);
int main(void)
{
M(9);
return 0;
}
int M(int Q)
{
if(Q>1)
if(M(Q-1)==0)
printf("%03d\n", Q);
return Q-6;
}
答案 0 :(得分:8)
这很简单。
仅当M(Q-1)
返回0
时才会打印数字,而当Q
的值为7
时会发生这种情况。
关于零,这是因为你要求printf在3个位置打印数字,并在开始时打印零。 printf("%03d\n", Q);
了解更多here。
答案 1 :(得分:3)
printf(“%03d \ n”,Q)将打印7到3个位置,结果为007