我想列出所有安排,以下是我的示例代码:
const unsigned char item1[] = {'b'};
const unsigned char item2[] = { 'A', 'C' ,'D'};
const unsigned char item3[] = {'1','2'};
int _tmain(int argc, _TCHAR* argv[])
{
for (int i = 0; i < sizeof(item1) / sizeof(unsigned char); i++){
for (int j = 0; j < sizeof(item2) / sizeof(unsigned char); j++){
for (int k = 0; k < sizeof(item3) / sizeof(unsigned char); k++){
printf("%c%c%c\n",item1[i],item2[j],item3[k]);
}
}
}
return 0;
}
这将打印所有排列,但我担心如果数组项是从item1
到item99
,那么代码就很难维护。是否有更好的解决方案来打印所有排列?谢谢!
#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
来简化数组长度的计算。 - pbn