查找数组的最小值
finding minimum value of an array
从我所学到的,我应该得到数组的最小值,但相反,我得到一个大的负数,不存在于我的数组。
int size;
size = sizeof(array) / sizeof(array[0]);
int min;
min = array[0];
for(int i = 1; i <= size; i++) {
if(array[i] < min){
min = array[i];
}
}
但由于某种原因,我得到了一个很大的负数:- 9.255996 e+061
for(int i = 1; i <= size; i++) {
//^^^^array index out of bound, since array index starts from 0
if(array[i] < min){
min = array[i];
}
}
只能比较数组中的元素。您试图访问不属于该数组的内存,因此该内存中有奇怪的值。
你的代码应该是这样的:
int min = array[0];
for(int i = 1; i < size; i++) {
if(array[i] < min){
min = array[i];
}
}
在进行比较时,<= size
意味着您正在迭代1超过数组的末尾。它很可能会捡到一些非常大的垃圾价值,然后变成最小值。
使用for (int i = 1; i < size; ++i) { /* ... */ }
得到你需要的
相关文章:
- 使用递归的数组的最小值.这是怎么回事
- 在二维数组中查找最小值和最大值?
- 有没有办法使用递归函数找到数组中最小值的 INDEX?C++
- 查找数组中第一个最小值和最后一个最大值元素之间的算术平均值
- 需要使用模板查找数组的第二个最小和最小值
- CUDA - 将 float3 数组的 (x,y,z) 分量的最小值/最大值分开?
- 查找包含 N 个元素的数组的最小值和最大值
- 在不进行排序的情况下查找数组中n个最小值的索引
- 在索引0为0的数组中查找非零最小值C++
- 使用数组将最后一个最大值更改为第一个最小值
- 以 C/C++ 为单位的数组中最小值的地址
- 如何在给定数组的任何子数组(任何大小)中找到最大值(或最小值)?
- 有没有办法在递归中使用指针来查找数组的最小值?
- 构造大小为 N 的数组 A 和大小为 1 的数组 A,使得所有 A[i]*A[j] 的总和为最小值和正数。1 <= i < j <= N
- C++数组的最大值、最小值、平均值函数
- 数组中最小值的总和
- C 递归找到数组的最小值
- 从二维数组中查找最小值和最大值
- 使用函数从数组中索引最小值的问题
- 查找最小字典数组