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

admin2021-02-22  31

问题 请使用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,1 1,12
    要求:
    补充编制的内容写在“//**********333**********”与“//******666******”两行之间。不得修改程序的其他部分。
    注意:程序最后将结果输出到文件out.dat中。输出函数writeToFile已经编译为obj文件,并且在本程序调用。
1  //DataList.h
2  #include
3  using namespace std;
4  class DataList{//数据表类
5   int len;
6   double*d;
7   public:
8   DataList(int len,double data[]= NULL);
9    -DataList( ){delete[]d;}
10   int length( )const { return len;}//数据表长度(即数据元素的个数)
11  double getElement(int i)const{re-iturn d;}
12  void sort();//数据表排序
13    void show()const;//显示数据表
14    };
15  void writeToFile(char  *,const DataList&);
1  //main.cpp
2  #include"DataList.h"
3
4  DataList::DataList(int fen,double data[]):len(fen){
5  d=new double[len];
6    for(int i=0;i7  d=(data==NULL?0.0:data );
8  }
9
10   void DataList::sort(){//数据表排序
11    //********333********
12
13
14   //********666********
15    }
16  void DataList::show()const{//显示数据表
17    for(int i=0;i<<",";
18    cout<19    }
20   int main(){
21  double s[]={7,1,3,11,6,9,12,10,8,4,5,2);
22  DataList list(12,s);
23    cout<<"排序前:";
24   list.show();
25   list.sort();
26    cout<27    list.show();
28    writeToFile(" ",list);
29    return 0;
30    }

选项

答案1 for(int i =0;i d[j])//d[i]和d[j]比较认,如果大于,就d[i]和d[j]值交换 4 { 5 int temp=d[i];//把临时整型变量temp赋值为d[i] 6 d[i] =d[j];//把d[j]赋值给d[i] 7 d[j]=temp;//把temp值赋给d[j] 8 }

解析 本题使用最简单的冒泡排序算法,首先明确要排序的动态数组d,其长度为len,在此可以使用两个下标i和j相比较,当d>d[j]时,数组内的值利用中间变量temp进行交换。
转载请注明原文地址:https://kaotiyun.com/show/psfp777K
0

最新回复(0)