c语言递归问题,解释下代码就行了
【4.91】设有字母a、b、c,请编程用递归的方法产生由这些字母组成的,且长度为n的所有可能的字符串。例如,输入n=2,则输出:aa ab ac ba bb bc ca cb cc
#include <stdio.h>
int a[10];
fun( int *p, int m, int n ) /
{ int i; for( i=0;i<m;i++ )
{ *p = i;
if( n > 1 ) fun( p+1, m, n-1);
else print(p);
}
}
print( int *p )
{ int *q;
for( q=a;q<=p;q++ )
printf("%c", 'a'+ *q);
printf("\t");
}
main( )
{ int m, n;
printf("\nEnter m n:");
scanf("%d%d", &m, &n);
fun( a, m, n);
}
解释下那个for循环,比如m=3,n=3,怎么输出aaa aab aac aba abb abc ..................................等等