让我说我有这个数组
int array[] = {0x00, 0x00, 0x00};
我想对这个数组的每个可能变体执行某个函数(假设数组中的每个变量的最小值为0x00,最大值为0xA)。
int array[] = {0x00, 0x00, 0x00};
*Some Loop*
{
someFunction(array);
}
换句话说,我希望在每个可能的排列上(从{0x00,0x00,0x00}到{0xA,0xA,0xA})执行 someFunction ,但是我很难这样做所以我在寻求帮助。
我希望我提前解释好了,先谢谢!
答案 0 :(得分:5)
for(int i=0x00;i<=0xA;++i){
for(int j=0x00;j<=0xA;++j){
for(int k=0x00;k<=0xA;++k){
someFunction(i,j,k);
}
}
}
答案 1 :(得分:2)
更通用的解决方案就像
someRecursiveFunction( int *arr, int curbyte, int min, int max)
{
int n;
if( curbyte == 0 ) someFunction( arr );
else for( n = min; n <= max; n++ ) {
arr[curbyte-1] = n;
someRecursiveFunction( arr, curbyte-1, min, max );
}
}
然后在你的主要:
someRecursiveFunction( array, 3, 0, 0xA );