我不知道要代替β和α来打印所有与0和唯一不同的3位数字

时间:2019-07-08 22:08:43

标签: c

我不应该替换"α""β"来打印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]);
 }
}

1 个答案:

答案 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)时会按要求运行。我怀疑您会发现比识别所需的表达式更容易。

(细节留作练习。)