C++,要求定义一个类,实现对一位数组中的数字进行从小到大的排序,并进行测试。求大神

如题所述

#include <iostream>
using namespace std;

class ArrSort
{
private:
 int *_arr;
 int _count;

public:
 ArrSort()
 {
 
 }
 
 void setArr(int *arr,int count)
 {
  _arr=arr;
  _count=count;
 }

 void sort()
 {
  //冒泡排序
  int i,j;
  int temp;
  for(i=0;i<_count-1;i++)
   for(j=0;j<_count-i-1;j++)
    if(_arr[j]>_arr[j+1])
    {
     temp=_arr[j];
     _arr[j]=_arr[j+1];
     _arr[j+1]=temp;
    }
 }

 void view()
 {
  int i;
  for(i=0;i<_count;i++)
  {
   printf("arr[%d]=%d\n",i,_arr[i]);
  }
 }
};


int main()
{
 int a[4]={4,1,2,3};

 ArrSort *as=new ArrSort();
 as->setArr(a,4);
 as->sort();
 as->view();

 getchar();
 return 0;
}

 

温馨提示:内容为网友见解,仅供参考
无其他回答

用C++编写一个使用类模板对数组进行排序、查找和求元素和的程序
cout<<"数组和为:"<<obj.sum(data,5)<<endl;cout<<"数字4在数组中的位置是:"<<obj.search(4,data,5)<<endl;cout<<"排序前数组各元素为:"<<endl;for(int i = 0; i < 5; i++)cout<<data[i]<<" ";cout<<endl;cout<<"排序后数组各元素为:"<<endl;for(i = 0; i < ...

建立一个Array类,求一个一维数组中各元素的最大值最小值【C++程序设计...
{ int a[10] = {1,3,2,5,6,2,3,6,4,8};Array arr(a);arr.process();arr.print();}

C++定义一个有10个元素的一维数组计算最大值和最小值,并计算最大值附近...
可以做修改或输入 int a[10] = {1,3,4,2,50,3,1,30,10,20}; \/\/给数组排序,从小到大 sort(a, a+10); cout<<"最大:"<<a[9]<<", "<<"最小: "<<a[9]<<endl; cout<<"最大附近三个平均值: "<< float(a[0]+a[1]+a[2]) \/ 3.0f<<endl;...

c++读入一些整数,对其进行从小到大的排序要求使用vector和sort...
using namespace std;int main(){ int x;vector<int> a;\/\/定义一个容器 while(cin>>x&&x!='e'){ a.push_back(x);\/\/变量x在容器a尾部入栈 } sort(a.begin(),a.end());\/\/排序 for(int i=0;i<a.size();i++)\/\/输出(a.size():读取容器a的元素个数)cout<<a[i]<<" ";...

用C++求最大值、最小值问题。任意定义一个一维数组,并为其初始化,然后...
{ int a[10] = {2, 4, 5, 7, 3, 0, 4, 8, 1, 6};int i, max, imax, min, imin;max=min=1;imax=imin=0;for (i=0; i<10; i++){ if (maxa[i]){ min = a[i];imin = i;} } cout << "数组的最大值和最小值分别是第" << imax+1 << "项和第" << imi...

求C++程序:任意从键盘输入10个整数,按从小到大的顺序排序,并输出结果...
为了实现C++程序,可以按照以下步骤来完成一个从键盘输入10个整数并按从小到大排序的功能:首先,创建一个结构体,名为`IntInfo`,包含整数值(数值域)、排名(排名域)和序号(序号域)。接着,定义一个`IntInfo`类型的数组`d`,用于存储输入的10个整数及其相关信息。定义两个自定义函数:`compare...

c++ 定义一个字符数组,定义一个函数按照字符的ASCII码从小到大排序_百...
include <iostream>using namespace std;const int arryNum = 100; \/\/根据需要定义数组大小void sort_output(char *A) \/\/排序和输出{int leng = strlen(A);for (int i = 0; i < leng; i++){for (int j = i; j < leng; j++){if (A[i] > A[j]){int temp = A[i];A[i...

建立一个Array类,求一个一维数组中各元素的最大值最小值(C++程序设计...
建立一个Array类,求一个一维数组中各元素的最大值最小值 (1)私有成员 Int data[10]数组名称 int max int min float averge (2)公有成员 构造函数Array(int a[10]):初始化成员数组 Void process()求data数组中Max,Min,average Void print() 输出数组中元素Max,Min,average \/ include...

再问一道C++的题目。 如何对n个数据进行从小到大的排序?
下面是一个排序的例子,你自己看一下:include<stdio.h> void sort(int a[],int n){ int i;int j;int temp;for(i=0;i<n-1;i++){ for(j=i+1;j<n;j++){ if(a[i]>a[j]){ temp = a[i];a[i] = a[j];a[j] = temp;} } } } int main(){ int a[8]={1,4,...

C++中用vector存放一个数组,对数组进行排序,并输出数组
while(cin>>word){ text.push_back(word);} 什么时候跳出循环?for(vector<string>::iterator iter=text.begin();iter!=text.end();++iter)sort(text.begin(),text.end());sort一次就可以了,循环迭代的目的什么?cout<<*iter<<endl;for循环结束后,iter指向text.end(), 里面不包含有效数据...

相似回答