以相反的顺序打印数组,避免重复的 C++
printing array in reverse order avoiding duplicates c++
所以,我必须以相反的顺序打印出我的数组,避免重复。 代码工作正常,除了一个错误: 输出必须是:
100000
9995
992
22
14
它打印到屏幕上
-292742
100000
9995
992
22
14
这个第一个垃圾价值从何而来,我不知道。我认为错误在于这个特定的功能,但我不知道在哪里。我需要避免这个垃圾值。实现的其余部分工作完美。
int last;
int count = 0;
for(int i = lengthOfArray-1; i >=0; i--){
if(last == arr[i]){
++count;
}else{
cout << last << endl;
count = 1;
}
last = arr[i];
}
if (count > 0) {
cout << last << endl;
}
你应该初始化last
,否则它会被垃圾填满,按照你的逻辑,它会打印last
。
int last = arr[lengthOfArray-1];
int count = 0;
for(int i = lengthOfArray-1; i >=0; i--){
if(last == arr[i]){
++count;
} else{
cout << last << endl;
count = 1;
}
last = arr[i];
}
if (count > 0) {
cout << last << endl;
}
您正在使用未初始化的值 (last
),首先将其与arr[i]
进行比较,如果它不等于a[i]
则输出它。使用未初始化的值将是未定义的行为。在这种情况下,最后恰好被初始化为-292742
这解释了输出。
else{
last = arr[i];
cout << last << endl;
count = 1;
}
你的 else 语句应该是这样的
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组的地址分配给变量并删除
- 从C++本机插件更新Vector3数组
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 数组索引的值没有增加
- 将对象数组的引用传递给函数
- 为char数组调整zlib-zpipe
- 2D数组来自文本输入,中间有空格
- std::向量与传递值的动态数组
- 在c++中用vector填充一个简单的动态数组
- 使用strcpy将char数组的元素复制到另一个数组
- 使用指针从C++中的数组中获取最大值
- C++使用整数的压缩数组初始化对象
- 告诉一个 const char 数组,除了编译时 C 样式的字符串外,它不以 '