#include
#include
void main()
{
int i,j,a[6],b[6],temp,e,q,x,y;
for(i=0;i<6;i++)
{
cout<<"请输入数:";
cin>>a[i];
}
e=0;
for(i=0;i<6-e;i++)
{
for(j=1;j<6-i-e;j++)
{
if(a[i]==a[i+j])
{
temp=a[i+j];
a[i+j]=a[5-e];
a[5-e]=temp;
e++;
}
}
}
for(x=0;x<6-e;x++)
{
b[x]=a[x];
}
for(x=0;x<6-e;x++)
for(y=0;y<5-e-x;y++)
{
if(b[y]
{
q=b[y];
b[y]=b[y+1];
b[y+1]=q;
}
}
for(x=0;x<6-e;x++)
{
cout<
}
cout<
}
笨办法:从数组头开始遍历。判断从[0]到当前[i],是否有值和[i]的值相等。
如果有,就把当前[i]删除,然后依次把后面的前移。
如果没有,继续判断[i+1]。
#include
#include
void
main()
{
int
i,j,a[6],b[6],temp,e,q,x,y;
for(i=0;i<6;i++)
{
cout<<"请输入数:";
cin>>a[i];
}
e=0;
for(i=0;i<6-e;i++)
{
for(j=1;j<6-i-e;j++)
{
if(a[i]==a[i+j])
{
temp=a[i+j];
a[i+j]=a[5-e];
a[5-e]=temp;
e++;
}
}
}
for(x=0;x<6-e;x++)
{
b[x]=a[x];
}
for(x=0;x<6-e;x++)
for(y=0;y<5-e-x;y++)
{
if(b[y]{
q=b[y];
b[y]=b[y+1];
b[y+1]=q;
}
}
for(x=0;x<6-e;x++)
{
cout<
cout<
我用伪代码吧
定义
shu[n],x=0
赋值
for(i=0;i
运算
排序
for(j=1;j
for(i=0;i
if(shu[j]>=shu[i])
{
temp=shu[i];
shu[i]=shu[j];
shu[j]=temp;
}
}
}
去除相同元素
for(i=0;i
for(j=i+1;j
if(shu[j]=shu[i])
{
x=x-1;
}
}
}
输出
for(i=0;i
printf("%d",shu[i]);
}