当前位置: 代码迷 >> C语言 >> [求助]C语言设计:组数游戏
  详细解决方案

[求助]C语言设计:组数游戏

热度:139   发布时间:2007-07-14 20:52:06.0
[求助]C语言设计:组数游戏
[要求]
设有n个数(n<=20),将它们联成一排,组成一个最大的多位数.程序输入:n,程序输出:个联接成的多位数.
[提示]
以下是设计思路:
可以将问题这样变化一下:
比如我输入的是 123 2 33 1006 12 这样几个数字
我首先找出最大的数字的位数为四位,再将所有得数字变成四位数:
1230 2000 3300 1006 1200
然后进行排序
3300 2000 1230 1200 1006
这样将后面加上的0去掉的序列不就是最大数字吗?
于是最大数字就是
332123121006
搜索更多相关的解决方案: C语言  游戏  数字  位数  

----------------解决方案--------------------------------------------------------
struct number
{
char old[10];
char new[10];
int n;
};

int main()
{
struct number a[5];
int n[5]={123,2,33,1006,12};
char tmp[10];
int size=5,i,len=0,j,temp;

for(i=0;i<size;i++)
{
sprintf(a[i].old,"%d\0",n[i]);
if(strlen(a[i].old)>len)
len=strlen(a[i].old);
}

for(i=0;i<size;i++)
{
sprintf(a[i].new,"%s\0",a[i].old);
for(j=0;j<len-strlen(a[i].old);j++)
{
strcat(a[i].new,"0\0");
}
a[i].n=atoi(a[i].new);
}

for(i=0;i<size;i++)
{
;// printf("%s\n",a[i].new);
}

for(i=0;i<size-1;i++)
{
for(j=i;j<size;j++)
{
if(a[i].n<a[j].n)
{
temp=a[j].n;
a[j].n=a[i].n;
a[i].n=temp;

strcpy(tmp,a[j].old);
strcpy(a[j].old,a[i].old);
strcpy(a[i].old,tmp);
}
}


}

for(i=0;i<size;i++)
{
printf("%s",a[i].old);
}
}


----------------解决方案--------------------------------------------------------
牛啊
----------------解决方案--------------------------------------------------------

使用STL可以简单的多

程序代码:

#include <iostream>
#include <vector>
#include <string>
#include <iterator>
#include <algorithm>
#include <functional>
using namespace std;

int main()
{
typedef vector<string> vec_str;
typedef istream_iterator<string> istream_itr;
typedef ostream_iterator<string> ostream_itr;
typedef back_insert_iterator<vec_str> back_ins_itr;
vec_str arr;
copy(istream_itr(cin), istream_itr(), back_ins_itr(arr));
sort(arr.begin(), arr.end(),greater<string>());
copy(arr.begin(), arr.end(), ostream_itr(cout, \"\"));
cout<<endl;
}


----------------解决方案--------------------------------------------------------
好像C里面没有吧
----------------解决方案--------------------------------------------------------

好强啊!太谢谢你啦!


----------------解决方案--------------------------------------------------------
多谢了!!!
----------------解决方案--------------------------------------------------------
  相关解决方案