|
1、完成下列程序:
该程序重新排列a[N]的元素,使相等的元素放在一起,并保持它们在数组中第一次出现的相对位置。例如:
原数组:2 4 3 5 2 3 4 5 2 3
重排后:2 2 2 4 4 3 3 3 5 5
采用的算法是:统计个不同元素出现的次数(存放在数组c中),并依次记录先这些不同的元素,用数组b[j]标识a的第j个元素是否在前面出现过。最后按各元素重复排列的次数写回到数组a中。
#include <iostream.h>
#define N 10
void main ()
{
int a[N],b[N],c[N],i,j,k,t;
cout<<\"输入数组a中的各元素:\\n\";
for(i=0;i<N;i++)
{
b=c=1;
cin>>a;
}
k=0;
for(i=0;i<N;i++)
if(_____________)
{
a[k]=a;
for(________;j<N;j++)
if(a[j]==a)
b[j]=0;c[k]++;
_______________;
}
t=N-1;
for(i=k-1;i>=0;i--)
for(j=0;_______;j++)
_________;
for(i=0;i<N;i++)
cout<<a<<'\\t';
cout<<'\\n';
} |
|