gpt4 book ai didi

c - 递归最小函数

转载 作者:行者123 更新时间:2023-11-30 15:21:27 24 4
gpt4 key购买 nike

#include<stdio.h>
#define SIZE 7

int recursiveMinimum( int a[], int size );

int main(void) {
int a[ SIZE ] = { 5, 7, 4, 3, 5, 1, 3 }; // Number 2 is not initialized.

printf( "The smallest number is %d", recursiveMinimum( a, SIZE ) );

return 0;
}

int recursiveMinimum( int a[], int size ) {
static int min ;
static int i = 0;

min = a[ i ];
if( a[ i + 1 ] < min ) {
min = a[ i + 1 ];
}

i++;

if( i == size ) {
return min;
} else {
return recursiveMinimum( a, size );
}
}

那么为什么它会打印2

最佳答案

您对数组的访问权限相差一:您正在访问 a[7] 元素,但数组的最后一个元素是 a[6].

看看你有:

i++;
if( i == size ) {

但是在上面您正在访问a[i + 1],这意味着在某些时候您将访问a[size](位于数组之外)。

if (i == size) 更改为 if (i == size - 1) 以解决您的问题。

关于c - 递归最小函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29562435/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com