题目如下:
以下是我写的代码:
#include <iostream>
using namespace std;
#define N 100
class number
{
public:
void input()
{
cin>>n;
}
int getn()
{
return n;
}
void change(int m)
{
n = m;
}
void output()
{
cout<<n;
}
private:
int n;
};
int clean(number Number[],int n)
{
int i, t,j,k,m;
for(i = 0;i<n-1;i++)//n-1
{
t = Number[i].getn();
for(j = i+1;j<n;j++)
{
if(t == Number[j].getn())
{
for(k = j;k<n;k++)
{
m = Number[k+1].getn();
Number[k].change(m);
}
n--;//1
}
}
}
return n;
}
void sort(number Number[],int n)
{
int i,j,t1,t2;
for(i = n - 1;i>0;i--)
{
for(j = 0;j<i;j++)
{
t1 = Number[j].getn();
t2 = Number[j+1].getn();
if(t1>t2)
{
Number[j].change(t2);
Number[j+1].change(t1);
}
}
}
}
int main()
{
number Number[N];
int n,m;
cin>>n;
int i;
for(i = 0;i<n;i++)
{
Number[i].input();
}
m = clean(Number,n);
sort(Number,m);
cout<<m<<endl;
for(i = 0;i<m;i++)
{
Number[i].output();
cout<<' ';
}
return 0;
}
然后呢,结果是这样:
我知道有简单的算法,比如set库,或者直接用容量为1000的数组,我现在就想搞清楚我这里哪里错了。谢谢老师们了