这是怎么递归调用,怎么循环的,看不懂!跪求大神指点迷津

#include
int n,k;
int t[9];
void di(int pt)
{
int i;
if(pt>k)
{
for(i=1;i<=k;i++)
{
printf("%d\n",t[i]);
}
}
else
{
for(i=1;i<=n;i++)
{
t[pt]=i;
di(pt+1);
}
}
}
int main()
{
scanf("%d%d",&n,&k);
di(1);
return 0;
}

这就说明格式的重要行了吧 ctrl+shift+f 试试

main里面的di(1)是调用处;

di方法里的else是递归调用,里面还有循环

di(pt + 1)

在di函数的for循环中在调用di(pt+1),在main中调用了di(1),规律在调试程序的时候可以看到