开发平台(Platform): codeblocks(Ex: VC++, GCC, Linux, ...)
问题(Question):
大家好
我的程式有个部份
会碰到需要让一个
长度不固定的阵列(要根据某个档案读入比数决定)
需要用loop去跑每个值的可能性
让整个阵列加总的值等于特定值
问题就在于
当这个阵列长度是固定时
我可以各写一个for/while循环来跑
但是 当他不固定时
不小得有没有办法用while循环或是什么技巧做到这件事呢?
谢谢
程式码(Code):(请善用置底文网页, 记得排版)
举个例而言
如下面的code所示
当我的阵列长度为5时 double a[5];
我可以用下面的5圈for loop去跑
那阵列的值就是 a[0]=i, a[1]=j, a[2]=k, a[3]=l, a[4]=m ;//下面只是单纯印出
但是因为阵列长度是要执行code的当下
才会知道
所以不晓得
有什么办法可以让for loop的次数 是动态的?
谢谢 > <
double num=10.0;
for(double i=0.0;i<num;i+=0.1){
for(double j=0.0;j<num;j+=0.1){
if(i+j>num)
break;
for(double k=0.0;k<num;k+=0.1){
if(i+j+k>num)
break;
for(double l=0.0;l<num;l+=0.1){
if(i+j+k+l>num)
break;
for(double m=0.0;m<num;m+=0.1){
if(i+j+k+l+m>num)
break;
else{
if(i+j+k+l+m==num){
cout<<i<<" "<<j<<" "<<k<<" "<<l<<" "<<m<<endl;
}
}
}
}
}
}
}
补充说明(Supplement):