int g_iCountTypes;
Enumerate(LPSTR lpSource, const int iCount, int iStart)
{
if (iStart > (iCount - 2))
{
return -1;
}
for(int i = iStart; i < iCount; i++)
{
Swap(lpSource[iStart], lpSource[i]);
if (iStart == (iCount - 2))
{
printf("%s/n",lpSource);
g_iCountTypes;
}
else
{
AllTypes(lpSource, iCount, iStart + 1);
}
Swap(lpSource[iStart], lpSource[i]);
}
return 0;
}
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
g_iCountTypes = 0;
char a[6]={'a','b','c','d','e'};
a[5] = 0;
int iCount = 5;
int iStart = 0;
Enumerate(a, iCount, iStart);
printf("排列结果总数:%d/n", g_iCountTypes);
return 0;
}