C++查找队列中最小值为0,如何查找非0的最小值?
本帖最后由 jtwc 于 2023-6-2 11:26 编辑C++查找队列中最小值为0,如何查找非0的最小值?
vector<double>vec3;//创建队列3
vec3.insert(vec3.begin(), a);//向队列3在开始插入变量
int v_size = vec3.size();//取值之前要先计算一下队列中有多少个元素,取值不能超过范围
//取vec3中的最小值
double minvec3 = *min_element(vec3.begin(), vec3.end());
z = minvec3;
printf("最小值:%.f\n", z);
出来z=0;
如何查找非0的最小值?
排序再去重输出第二个元素?
或者直接遍历一下? vector<double> vec3;// 创建队列3
vec3.insert(vec3.begin(), a);// 向队列3在开始插入变量
int v_size = vec3.size();// 取值之前要先计算一下队列中有多少个元素,取值不能超过范围
// 查找vec3中的非零最小值
double minvec3 = numeric_limits<double>::max();// 初始化为一个较大的值
for (const auto& num : vec3) {
if (num != 0 && num < minvec3) {
minvec3 = num;
}
}
if (minvec3 == numeric_limits<double>::max()) {
printf("队列中没有非零值。\n");
} else {
printf("非零的最小值:%.f\n", minvec3);
}
写一个循环遍历。还要注意一下浮点数如何判0的 eofitg 发表于 2023-6-2 16:47
排序再去重输出第二个元素?
或者直接遍历一下?
谢谢老师 一闪一闪233 发表于 2023-6-2 18:39
vector vec3;// 创建队列3
vec3.insert(vec3.begin(), a);// 向队列3在开始插 ...
谢谢老师
页:
[1]