【发布时间】:2015-04-15 04:49:09
【问题描述】:
我生成了一个由 1-5 的 5 个随机整数组成的数组。这是数组现在的样子:myArray[5] = {3, 3, 1, 4, 5}
我现在已经按升序对包含 5 个整数的数组进行了排序,从最小到最大。
myArray[5] = {1, 3, 3, 4, 5}
我现在需要计算一个特定整数的出现次数并制作一个表格。
如:
Number: Count:
1:1
2:0
3:3
4:0
5:1
我得到的最远的一直是遍历数组。我很难计算数字并计算发生的次数。
不使用任何地图或迭代等。我正在尝试获取此计数。这是我已经尝试过的:
int counts[10];
for (int x = 0; x <= 10; x++){
int counter = 0;
for (int j = 0; j < ARRAY_SIZE; j++){
if (x == myArray[j]){
counts[x] == counter++;
}
}
cout << "Number: " << x << "Number of Occurances: " << counts[counter]<< "\n";
}
但是,我的输出非常错误。
【问题讨论】:
-
制作一个计数数组。使用当前元素中的值作为该数组中的索引,并增加计数。顺便说一句,没有必要为此对数组进行排序。
-
其实,既然是C++,你应该使用
std::map。 -
嘿@Barmar 我仍然对这里的解决方案感兴趣。我已经尝试按照您的解释进行操作,但是我遇到了一些奇怪的行为。您能否详细说明此解决方案?
-
如果你打算使用map来存储数字频率,你不必先对数组进行排序
-
请将您尝试的解决方案添加到问题中。我还能如何告诉您您做错了什么,以便您从错误中吸取教训?