这个c语言程序怎么编?

来源:百度知道 编辑:UC知道 时间:2024/05/09 11:16:51
给一组数,将其组合起来,使其最大,求此数(如9,3456,74,4,36,则组合最大数为:9744363456)

比较繁琐,只说思路
把每个字符串 按9 8 7 ...1 分组...
如果每个分组里不只一个..则分组内部 再按9 8 7 .... 1分组排序.
(for循环实现)
知道每个分组只有一个数, 然后按顺序链接起来.

把数字变成字符串,按照每个子串第一个字符从大到小的顺序(如果第一个字符一样大就看第二个),把子串连成一个字符串输出

//---------------------------------------------------------------------------

#include <stdio.h>
#include <string.h>

int main(void)
{
char a[5][10]={"9","3456","74","4","36"},ti[10];

int i,j;

for (i = 0; i<4; i++) {
for (j=i+1; j<5; j++) {
if (strcmp(a[i],a[j])<0) {
strcpy(ti,a[i]);
strcpy(a[i],a[j]);
strcpy(a[j],ti);
}
}
}
for (i = 0; i<5; i++) {
printf("%s",a[i]);
}
return 0;
}
//---------------------------------------------------------------------------