回 帖 发 新 帖 刷新版面

主题:用c++写个数组游戏,跪求高手们援助,急!!!万分感谢!!!

组数游戏
问题分析
(1)输入正整数的个数n,输出n个数连接成的最大的多位数。找出n个数中最大数字的位数,然后将所有的数字通过后面补零的方式扩展成为最大位数。把变换后的n位数从大到小排序,然后把添加上的零去掉,按顺序输出的序列即为所求的最大数字。
(2)数据结构采用结构体,由于正整数的位数不确定,可能非常大,所以数据类型采用字符数组。
Struct 
{
  char data[20];     //数据
  char ext_data[20];  //扩展数据
}Elem[N];    //结构体数组
N可以在宏定义中定义:#define N 20
(3)算法流程
输入正整数个数n;
Max=0;   //Max存储最大位数
//输入正整数并计算最大位数
For (i=0;i<n;++i)
{
  输入Elem[i].data;
  Strcpy(Elem[i].ext_data,Elem[i].data);
  Tmp=strlen(Elem[i].data);   //计算输入数字的位数
  If(Tmp>Max)
     Max=Tmp;
}
//计算扩展数字
For (i=0;i<n;++i)
{
  tmp=strlen(Elem[i].data);   //计算输入数字的位数
  m=Max-tmp;    //m为需要补0的个数
  定义一个m个’0’的字符串tmp_str;
  Strcat(Elem[i].ext_data,tmp_str);
}
   //排序
任选一中排序算法(冒泡、插入、选择等)对数字结构体数组按照ext_data从大到小排序。
   //输出
   按序输出结构体数组中data数据。

回复列表 (共1个回复)

沙发

不用急,QQ联系。1285305730

我来回复

您尚未登录,请登录后再回复。点此登录或注册