注册 登录
编程论坛 C++教室

『求助』从键盘上输入10个int型整数,去掉重复的,将剩下的从小到大输出。。。

zhangbo85128 发布于 2007-05-08 10:36, 1573 次点击


#include<iostream.h>
void main()
{
int a[10];
for(int i=0;i<10;i++)
{
cin>>a[i];
}
for(int j=1;j<10;j++)
{
for(int k=0;k<=10-j;k++)
{
if(a[k]>a[k+1])
{
int temp;
temp=a[k];
a[k]=a[k+1];
a[k+1]=temp;
}
}
}
cout<<endl<<endl;
for(int v=0;v<10;v++)
{
cout<<a[v]<<",";
}
for(int m=0;m<9;m++)
{
for(int n=1; n<10;n++)
{
if (a[m]==a[n])
{

for(int p=n;p<10;p++)
{
a[p]=a[p+1];
}
}

}

}

cin.get();
cin.get();

}
这里的程序只能排列不能删除,
怎么样才能删除相同的元素啊 ??
各位大哥们,大姐们??

4 回复
#2
zhangbo851282007-05-08 10:39
帮帮忙啊 ??
#3
zhangbo851282007-05-08 10:40
帮帮忙啊
#4
aipb20072007-05-08 13:34
提供个思路吧,

获取数并储存时,检测该数的唯一性,若不是,不储存。可以直接循环历遍该数之前的元素。

然后将剩下的不重复数排序,方法不说了,太多。


最简单的办法,用stl,sort()和unique()函数。
#5
sqyang5212007-05-09 23:29

同意楼上的说法

1