动态决定嵌套循环层数的方法

来源:互联网 发布:注册淘宝网店 编辑:程序博客网 时间:2024/05/22 05:02

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;}}}


0 0
原创粉丝点击