c++求解答!!++

 

代码如下,如有帮助,请采纳一下,谢谢。

#include <iostream>
#include <fstream>
using namespace std;
class ARRAY
{
private:
	int a[100];
	int n;
public:
	ARRAY(int t[],int m)
	{
		int i = 0;
		for (;i < m;i++)
		{
			a[i] = t[i];
		}
		n = m;
	}
	//求x的各位数字之和
	int sum(int x)
	{
		int d = x;
		int s = 0;
		while(d > 0)
		{
			s += d%10;
			d/=10;
		}
		
		return s;
	}
	//排序
	void fun()
	{
		int i,j;
		int tmp;
		for (i = 0;i<n-1;i++)
		{
			for (j = 0;j<n-1-i;j++)
			{
				if(sum(a[j]) > sum(a[j+1]))
				{
					tmp = a[j];
					a[j] = a[j+1];
					a[j+1] = tmp;
				}
			}
		}
	}

	//输出
	void print()
	{
		int i;
		ofstream os("myfile.out");
		cout << "排序前的数组为";
		if (!os.is_open())
		{
			cout << "myfile.out打开失败" << endl;
			return;
		}
		os << "排序前的数组为" << endl;
		for (i = 0;i< n;i++)
		{
			if(i < n-1)
			{
				cout << a[i] << ",";
				os << a[i] << ",";
			}
			else
			{
				cout << a[i] << endl;
				os << a[i] << endl;
			}
		}
		
		//排序
		fun();
		cout << "排序后的数组为";
		os << "排序后的数组为" << endl;
		for (i = 0;i< n;i++)
		{
			if(i < n-1)
			{
				cout << a[i] << ",";
				os << a[i] << ",";
			}
			else
			{
				cout << a[i] << endl;
				os << a[i] << endl;
			}
		}
		//写入姓名 学号 班级
		os << "zhangsan 10011 计算机一班"; //此处修改成你自己的信息
		os.close();
	}

};


int main()
{
	int t[] = {297,735,624,158,312,900};
	ARRAY ar(t,6);
	ar.print();
	return 0;
}