C++如何将嵌套的for循环改写成通用模式 60

举个例子,有这样一个循环count[4]=[1,2,3,4];for(inti=0;i<count[0];i++)for(intj=0;j<count[1];j++)fo... 举个例子,有这样一个循环
count[4]=[1,2,3,4];
for(int i=0;i<count[0];i++)
for(int j=0; j<count[1];j++)

for(int m=0;m<count[2];m++)

for(int n=0;n<count[3];n++)

.......

这样的一个程序如何改写成通用的形式?用函数的话请具体说明下如何使用,谢谢!
展开
 我来答
ankh_s
2015-06-14 · TA获得超过414个赞
知道答主
回答量:90
采纳率:0%
帮助的人:42.1万
展开全部

/*

     c++不能动态生成代码,就像上面,不能动态生成循环。但是换种思路能解决你的问题,

     如果具体的循环内容如图:

    

   可以用如下函数实现相同效果

    原理:执行s1的时候,循环总次数能被count[2]*count[3]整除

                执行s2()的时候,循环总次数能被1整除

*/

/*

            @count数组

            @len数组长度

*/

void circle ( int count[], int len)

{

        int total = 1; //总共循环次数

        int sub_total_2 = 1;//第二层循环子循环数,需计算

        int sub_total4 = 1;//第4层循环内子循环次数,需计算

        

        for (int i = 0; i <len; i++)

        {

            total*=count[i];

            if(i>1)

                 sub_total2 *= count[i];

            if(i>3)

                sub_total4 *= count[i];

        }

        for( int j = 1; j<= total; j++)

        {

                if(total % sub_total2 == 0)

                    s1();

                if(total % sub_total4 == 0)

                    s2();

        }

}

                    

           

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式