本文主要是介绍动态决定嵌套循环层数的方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1使用递归
void cycle(int sCnt ,int zCnt){return ;sCnt--;if(sCnt == 0 && zCnt ==0){return;}//for(int i=0;i<10;i++){TRACE("%d\n",sCnt);}cycle(sCnt ,zCnt );
}
2.使用一个数组保存循环层数,通过改变数组元素的值决定再哪层循环多少次
void func(int depth, int n){int cur = 0;//int *tab = (int *)malloc(n * sizeof(int));int tab[20]={0};//tab[0]最外层,tab[1]次外层for (*tab = 0; cur >= 0; ) {++tab[cur];//if (tab[cur] <= n) {if (tab[cur] <= iii[cur]) {//如果tab[cur]层的循环次数小于该层规定的最大次数if (cur == depth - 1) {//如果该层是最内层int i;for (i = 0; i < depth; ++i) {//TRACE("%d ", tab[i]);//iii[i] = i;}TRACE("%d,%d,%d,%d,%d,%d,%d\n", tab[0], tab[1], tab[2], tab[3], tab[4], tab[5], tab[6]);//TRACE("%d,%d,%d,%d,%d,%d,\n",// iii[0],iii[1],iii[2],iii[3],iii[4],iii[5]);} else {++cur;tab[cur] = 0;}} else {--cur;}}}
这篇关于动态决定嵌套循环层数的方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!