冒泡排序并将整型转换char类型

 编写类 String 的构造函数、析构函数和赋值函数,并冒泡排序算法,使得结果逆序输出。程序以输入十个数为例,并且包含三个部分:输入、排序、输出。排序算法必须封装为函数

代码如下:

class String

{

public:

    String(const char* str = NULL); // 普通构造函数  

    String(const String& other);     // 拷贝构造函数  

    String& operator = (const String& other);

    ~String();         // 析构函数  

private:

    char* m_data;

};



String::String(const char* str)

{

    this->m_data = new char[10];

    strcpy_s(m_data, 10, str);

}

///*拷贝不用返回*/

String::String(const String& other)

{

    m_data = new char[10];

    strcpy_s(m_data, 10, other.m_data);

}

/*赋值重载返回this指针*/

String& String::operator=(const String& other)

{

    m_data = new char[10];

    strcpy_s(m_data, 10, other.m_data);

    cout << m_data << endl;

    return *this;

}

void paixu(int a[], int b)

{

   int min, flag = 1;
	for (int i = 0; i < b - 1; i++)
	{
		flag = 0;
		for (int j = 0; j < b - i - 1; j++)
		{
			if (a[j] < a[j + 1])
			{
				flag = 1;
				min = a[j + 1];
				a[j + 1] = a[j];
				a[j] = min;
			}
		}
	}

    char p[10];

    int  j, n;

    char ch;

    for (j = 0; j < 10; ++j) {//遍历所有个数

       for (n = 0; a[j]; ++n) {//n=0,j=0

           p[n] = a[j] % 10 + '0';//把元素倒过来插入到数组中

           a[j] /= 10;

       }

       p[n] = '\0';

       for (int i = 0; i < n / 2; ++i) {

           ch = p[i];

           p[i] = p[n - 1 - i];

           p[n - 1 - i] = ch;

       }

       String in(p);

       String dt(in);//调用拷贝

       String tt = dt = in;//调用赋值

    }

}

String:: ~String()

{

    delete[] m_data;

}

int main()

{

    cout << "请输入十个数" << endl;

    int a;

    int d[10];

    for (int i = 0; i < 10 ; i++)

    {

       cin >> a;

       d[i] = a;

    }

  paixu(d, 10);

}

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值