请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中声明的DataList类,是一个用于表示数据表的类。sort成员函数的功能是将当前数据表中的元素升序排列。请编写这个sort函数。程序的正确输出应为: 排序前:7,1,3

admin2020-07-23  42

问题 请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中声明的DataList类,是一个用于表示数据表的类。sort成员函数的功能是将当前数据表中的元素升序排列。请编写这个sort函数。程序的正确输出应为:
    排序前:7,1,3,11,6,9,12,10,8,4,5,2
    排序后:1,2,3,4,5,6,7,8,9,10,11,12
    要求:
    补充编制的内容写在“//***********3***********”与“//***********666***********”两行之间。不得修改程序的其他部分。
    注意:程序最后将结果输出到文件out.dat中。输出函数writeToFile已经编译为obj文件,并且在本程序调用。
//DataList.h
#include
using namespace std;
class DataList{//数据表类
  int len;
  double*d;
public:
  DataList(int len,double data[]=NULL);
  ~DataList(){delete[]d;)
  int length()const{returnlen;}
//数据表长度(即数据元素的个数)
    double  getElement  (int  i)
const{return d;)
  void sort();//数据表排序
  void show()const;//显示数据表
};
void writeToFile(char  *,  const DataList&);
//main.cpp
#include"DataList.h"
DataList::DataList(int len,
double data[]):len(1en){
  d=new double[1en];
  for(int i=0;i    d=(data==NULL?0.0:
data);
}
void DataList::sort(){//数据表排序
//***********333***********
//***********666***********
}
void DataList::show()const(
//显示数据表
  for(int i=0;ii++)cout<<<",";
  cout<}
int main(){
double s[]={7,1,3,11,6,9,12,10,8,4,5,2};
  DataList 1ist(12,s);
  cout<<"排序前:";
  list.show();
  list.sort();
  cout<  list.show();
  writeToFile("",list);
  return 0 ;
}

选项

答案for(int 1=0;1<1en;++i) //从头遍历数组d for(int j=i;jd[j]) //d[i]和d[j]比较,如果大于,就d[i]和d[j]值交换 { int temp=d[i]; //把临时整型变量temp赋值为d[i] d[i]=d[j]; //把d[j]赋值给d[i] d[j]=temp; //把temp值赋给d[j] }

解析 本题使用最简单的冒泡排序算法,首先明确要排序的动态数组d,其长度为len,在此可以使用两个下标i和j相比较,当d>d[j]时,数组内的值利用中间变量temp进行交换。
    (2)tout<<"),length="<    (3)return sqrt((1.getX1()-1.getX2())*(1.getX1()-1.getX2())+(1.getY1()-1.getY2())*(1.getY1()-1.getY2()));
转载请注明原文地址:https://kaotiyun.com/show/I9yp777K
0

最新回复(0)