根据我所学到的,我应该得到数组的最小值,但是我得到一个在我的数组中不存在的大的负数.
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];
}
}
Run Code Online (Sandbox Code Playgroud)
但由于某种原因,我得到一个很大的负数:-9.25596e + 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];
}
}
Run Code Online (Sandbox Code Playgroud)
您应该只比较数组中的元素.您试图访问不属于该阵列的内存,因此您在该内存中有奇怪的值.
您的代码应如下所示:
int min = array[0];
for(int i = 1; i < size; i++) {
if(array[i] < min){
min = array[i];
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
127 次 |
| 最近记录: |