★★★★一道C语言问题★★★★

来源:百度知道 编辑:UC知道 时间:2024/06/16 07:26:10
设有n(n<=20)个正整数,将他们连接成一排,组成一个最大的多位整数。
例如:n=3时,3个整数13,312,343,连成的最大整数为:34331213。
又如:n=4时,4个整数7,13,4,246连接成的最大整数为7424613。

程序输入:
N
N个数
程序输出:连接成的多位数

注:我们现在学的是C语言,还没有学C++
看来大家还是想的太简单了
二楼的只是比较大小,比如:343>34
但是排列的时候却是34343而不是34334,是把34排在前面的
给一些参考吧:http://topic.csdn.net/t/20040914/23/3372952.html

谢谢大家了

的确是考虑简单了, 改了下:

#include <stdio.h>
#include <stdlib.h>

int MyStrCmp(const void* lhs, const void* rhs)
{
    const char* a = (const char*)lhs;
    const char* b = (const char*)rhs;
    
    while(true)
    {
        if(*a != *b)
            return *a - *b;
        
        while(*a && *b && *a == *b)
            ++a, ++b;
        
     &n