代码如下,如有帮助,请采纳一下,谢谢。
#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;
}