为什么在 c++ 中计算重复元素时,我的计数值大于数组中的元素数
Why is my count value greater than the number of elements in an array, when counting duplicate elements in c++?
在计算数组中重复元素的数量时,我测试了计数值。不知何故,该值大于数组中的实际元素数。我的猜测是,在双倍循环中,我得到了一个"双倍"计数。我试图指出问题所在,它就在计数中。
我尝试在我的代码中打印其他段的值,遵循代码,我似乎找不到为什么我编写的代码不起作用。
int main(){
int a[100];
int b[100];
int n,count;
cin >> n;
for(int i = 0; i < n; i++){
cin >> a[i];
}
for(int i = 0; i < n; i++){
b[i] = a[i];
}
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
if(a[i] == b[j]){
count++;
// cout << count << endl;
}
}
}
对于我的测试,我使用了:3,1 1 2我期望 1,相反,我得到了 1 2 3 4 5
你有:
a[0]
设置为 1
。
a[1]
设置为 1
。
a[2]
设置为 2
。
和
b[0]
设置为 1
。
b[1]
设置为 1
。
b[2]
设置为 2
。
您的比较是:
a[0] == b[0]
评估为 true
.
a[0] == b[1]
的计算结果为 true
。
a[0] == b[2]
的计算结果为 false
。
a[1] == b[0]
的计算结果为 true
.
a[1] == b[1]
的计算结果为 true
.
a[1] == b[2]
的计算结果为 false
.
a[2] == b[0]
的计算结果为 false
.
a[2] == b[1]
的计算结果为 false
.
a[2] == b[2]
的计算结果为 true
.
如您所见,其中有 5 个true
值。这就解释了为什么你会得到
1 2 3 4 5
相关文章:
- 如果变量数据包含大于 vector 所有元素的整数,则仅在视觉工作室上接收"矢量下标超出范围"?
- 在向量中查找大于 0(或通常为 k)的最小元素的最佳方法是什么?
- 第 k 个最小元素 - 不能创建大于 k 大小的数组
- 如何在随机数列表中查找大于或小于的元素
- C++:检查向量中的元素是否大于另一个具有相同索引的元素的有效方法?
- 计算向量中大于数字的元素
- (也许是NP-Hard)求一个集合的子集总数,使得每个子集在与其所有元素相乘时的值都大于X
- 如何在向量中找到大于某些数字的所有元素
- 访问 std::string 中的元素,其中字符串的位置大于其大小
- 将大于k的数组元素导入到另一个数组C 中
- 使用std :: find_if with std :: vector找到大于某些值的最小元素
- 对大于属性的元素的矢量对象进行二进制搜索
- 为什么在 c++ 中计算重复元素时,我的计数值大于数组中的元素数
- 矢量排序算法,仅对大于 0 的元素进行排序
- 获取所有矢量元素大于值C
- 获取所有大于某个值的 stl 向量元素
- std::map的大小大于调试器中显示的元素数量
- 能够访问索引大于数组长度的元素
- 如何检查数组的所有元素是否都大于零C++
- 如何找到映射中key大于val的第一个元素