【发布时间】:2017-09-19 15:05:14
【问题描述】:
假设我有一个像这样的数组 a[6] = {1,2,1,3,2,1,5} 我想打印 1,2。 我试过了:
#include<iostream>
using namespace std;
int main()
{
int a[50] = {1,2,3,43,5,1,6,7,4,43,1};
int c=0,b = sizeof(a)/sizeof(int);
for(int y=0;y<11;y++)
{
for(int q = y+1;q<11;q++)
{
if(a[y]=a[q])
{
cout<<a[q]<<endl;
}
}
}
}
输出:1,1,1,1,2。 如果我设置像 {1,2,3,4,1,2} 这样的元素 它给出输出:1,2。
请帮助我。我只想将两个或多个重复的数字打印一次。
【问题讨论】:
-
Build a histogram。然后打印每个值为 2 或更大的元素。
-
您可以添加到某种set,然后再打印集合中的所有项目,而不是立即打印。
-
另外,仅供参考,
a[y]=a[q]行不符合我的预期 (for reference) -
使用
std::map或对您的数组(或它的副本)进行排序,那么您的任务将是微不足道的。