我不应该替换"α"
和"β"
来打印all the 3 digit numbers which are different from 0 and from one another.
需要用一些代码替换这两个变量
We are entering G(0)!!!
这是从试卷中得到的,我真的不明白,请帮忙。
void G(int k)
{int i;
for(i=1;i<=α;i++)
{ p[k]=i;
if(β)G(k+1);
else
printf("%d%d%d\n",p[0],p[1],p[2]);
}
}
答案 0 :(得分:2)
要想使以上任何一项有意义,必须将p
声明为至少3个维度的全局int
数组。为此,我假设实际上如此声明。
请注意,该函数设置了p[k] = i
,但稍后仅回读p[0]
,p[1]
和p[2]
。这应该给您一个关于表达式β有意义的好主意,该表达式控制是递归(增加k
)还是打印。
还请注意,该函数设置了p[k] = i
,并且当它针对各种p[k]
读回k
时,它希望获取的值介于1到9之间(不多且不减)。这应该使您对α(i
包含的上限)有意义的表达方式有了一个很好的认识。
已经弄清楚了这些,但仍然可以使自己满意的是,这些表达式的自然替换确实产生了一个结果函数,该函数最初被称为G(0)
时会按要求运行。我怀疑您会发现比识别所需的表达式更容易。
(细节留作练习。)