C++中怎么去掉一个数组中重复的数,求高手解答。

比如说:要你从键盘上输入10个int 型数,去掉重复的,然后将其由大到小排序输出。求具体代码(关键部分就可以了)。

1,创建二个int型数组,一个保存你从键盘上输入的数,另一个用于排序
2,循环
3,如果遇到相同的,continue,进行下一个
4,如果不相同,进入第二个循环:把这个数和第二个数组的数进行比较,比其小的话比较下一个,大的话和其交换,然后拿交换后的数,比较下一个
5,第二个数组中的数,就是从大到小并且没有重复的数字
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-17
#include<iostream>

using namespace std;

int main()
{
int i, a[10], j, temp;
cout<<"输入10个数:"<<endl;;
for(i = 0; i <10; i++)
{
cin>>a[i];
}

for(i = 0; i <10-1; i++)
{
for(j =0; j <10-1 -i; j++)
{
if(a[j] < a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;

}
}
}

for(i = 0; i <10; i++)
{
if(a[i] !=a[i+1])
cout<<a[i]<<" ";
}
cout<<endl;
return 0;
}

这是详细程序 希望你能满意 呵呵~~追问

我想知道怎么先去重再排序,能帮我解答不?谢谢了

追答

没必要 那样的算法不是最简单的 我们算法的关键就是找到最简单的方法 如果算法不是最简单的 就不是最优的 那样没有意义

第2个回答  2011-03-17
你可以先排序,再去重。具体参考我的回答:
第3个回答  2011-03-28
冒泡排序
int tmp;
for(int i=0;i<9;i++)
for(int j=0;j<10;j++)
if(a[i]<a[j])
{
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网