把数组排成最小的数

来源:互联网 发布:sql查询语句表别名 编辑:程序博客网 时间:2024/06/05 12:57

代码:

#define _CRT_SECURE_NO_WARNINGS#include <iostream>using namespace std;const int g_max_length = 10;    // 0~9char* g_str_combine1 = new char[2 * g_max_length + 1];char* g_str_combine2 = new char[2 * g_max_length + 1];int Compare(const void* strNumber1, const void* strNumber2) //比较大小{    strcpy(g_str_combine1, *(char**)strNumber1);    strcat(g_str_combine1, *(char**)strNumber2);    strcpy(g_str_combine2, *(char**)strNumber2);    strcat(g_str_combine2, *(char**)strNumber1);    return strcmp(g_str_combine1,g_str_combine2);}void FindMinNumberSequenceOfArray(int* number, int nLength){    if (number == nullptr || nLength <= 0)        return;    char** strNumbers = (char**)(new int[nLength]);    for (int i = 0; i < nLength; i++)    {        strNumbers[i] = new char[g_max_length + 1];        /* sprintf(char*buffer, const char *format, [argument]...) 把格式化的数据写入某个字符缓冲区*/        sprintf(strNumbers[i], "%d", number[i]);    }    qsort(strNumbers, nLength, sizeof(char*), Compare);    for (int i = 0; i < nLength; i++)    {        cout << strNumbers[i];    }    cout << endl;    for (int i = 0; i < nLength; i++)    {        delete[] strNumbers[i];    }    delete[] strNumbers;}int main(){    int number[] = { 3, 32, 321 };    int nLength = sizeof(number) / sizeof(number[0]);    FindMinNumberSequenceOfArray(number, nLength);    cout << endl;    system("pause");    return 0;}

测试:

这里写图片描述

0 0
原创粉丝点击