【发布时间】:2016-02-15 20:38:20
【问题描述】:
假设我有一个包含 [2,4,6,7, 7, 4,4] 的数组 我想要一个可以迭代的程序,然后打印出这样的东西:
Value: Count:
2 1
4 3
6 1
7 2
我不希望它打印出 ex 4 三次。 到目前为止我得到了什么:
for (int i = 0; i < numberOfInts; i++)
{
dub[i] = 0;
for (int y = 0; y < numberOfInts; y++)
{
if (enarray[i] == enarray[y])
{
dub[i]++;
}
}
}
所以基本上我检查数组中的每个元素与所有元素,并且对于每个重复项,我将一个添加到新数组 dub[] 中的索引。 因此,如果我使用上面的示例数组运行此代码,然后将其打印出来,我会得到如下结果: 1,3,1,2,2,3,3。这些是相当混乱的数字,因为我真的不知道它们属于哪些数字。特别是当我将数组中的数字随机化时。然后我必须删除数字,所以我只有一个。谁有更好的解决方案?
【问题讨论】:
-
你的 char 数组,它是否只包含从 '0' 到 '9' 的字符?
-
其实我用的是int,现在更新了。
-
建议保留一个数组 (int numbers[10] = {0}) 然后为源数组中读取的每个值 numbers[[sourceValue]++;然后在打印结果时, for( int x=0;x
标签: c arrays duplicates