それぞれが一意の値を保持する 20 個の異なる可変長配列があり、これらの可能な組み合わせをすべて計算する必要があります。
#define LENGTH_COUNT 6
#define WIDTH_COUNT 4
etc, for all 20 arrays:
int length[LENGTH_COUNT];
int width[WIDTH_COUNT];
int height[HEIGHT_COUNT];
int weight[WEIGHT_COUNT];
int growth[GROWTH_COUNT];
int decay[DECAY_COUNT];
int sound[SOUND_COUNT];
int texture[TEXTURE_COUNT];
int moisture[MOISTURE_COUNT];
int volume[VOLUME_COUNT];
int speed[SPEED_COUNT];
int color[COLOR_COUNT];
int purpose[PURPOSE_COUNT];
int delay[DELAY_COUNT];
int vibrancy[VIBRANCY_COUNT];
int brix[BRIX_COUNT];
int ripeness[RIPENESS_COUNT];
int mold[MOLD_COUNT];
int temp[TEMP_COUNT];
int language[LANGUAGE_COUNT];
void iterate(void)
{
for (int i = 0; i < LENGTH_COUNT; ++i)
for (int j = 0; j < WIDTH_COUNT; ++j)
for (int k = 0; k < HEIGHT_COUNT; ++k)
// etc for all 20 arrays
int value = doSomething(length[i], width[j], height[k].....);
}
これを行うには、脳死の少ない方法が必要です。私が持っていた1つのアイデアは次のとおりです。
#define ARRAY_COUNT 20
#define MAX_LENGTH 12 // the longest array length is 12
int arrays[ARRAY_COUNT][MAX_LENGTH];
しかし、これを行うとしたら、反復関数で行っていることと同等のことを行う方法がわかりません。何か案は?