const int g_maxnumberlength = 10;
Char *g_strcombine1 = new Char[g_maxnumberlength * 2 + 1];
Char *g_strcombine2 = new Char[g_maxnumberlength * 2 + 1];
void Printminnumber (int* numbers, int length)
{
if (numbers = = NULL | | length <= 0)
Return
char** strnumbers = (char**) (new int[length]);
for (int i = 0; i < length; ++i)
{
Strnumbers[i] = new Char[g_maxnumberlength + 1];
sprintf (Strnumbers[i], "%d", numbers[i]);
}
Qsort (strnumbers, length, sizeof (char*), compare);
for (int i = 0; i < length; ++i)
printf ("%s", Strnumbers[i]);
printf ("\ n");
for (int i = 0; i < length; ++i)
Delete[] strnumbers[i];
Delete[] strnumbers;
}
int compare (const void*strnumber1, const void* strNumber2)
{
strcpy (G_STRCOMBINE1, * (const char**) strNumber1);
strcat (G_STRCOMBINE1, * (const char**) strNumber2);
strcpy (G_STRCOMBINE2, * (const char**) strNumber2);
strcat (G_STRCOMBINE2, * (const char**) strNumber1);
Return strcmp (G_strcombine1, g_strcombine2);
}
A valid comparison rule.
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
33. Arrange the array into the smallest number