在C中的函数递归中传递无符号数组

在C中的函数递归中传递无符号数组,c,C,如何在递归中使用数组作为参数 程序 void divide(int arr[], int i, int j, int max, int min){ //Deklarasi int min1, min2, max1, max2, k;//Algoritma //1 Elemen if(i == j){ min = arr[i]; max = arr[i]; } else{ //2 Elemen if(i == j-1){ if (arr[i] >

如何在递归中使用数组作为参数

程序

void divide(int arr[], int i, int j, int max, int min){
//Deklarasi
int min1, min2, max1, max2, k;//Algoritma
//1 Elemen
if(i == j){
    min = arr[i];
    max = arr[i];
}
else{
    //2 Elemen
    if(i == j-1){
        if (arr[i] > arr[j]){
            max = arr[i];
            min = arr[j];
        }
        else{
            max = arr[j];
            min = arr[i];
        }
    }
    //>2 Elemen
    else{
        k = (i+j)/2;
        divide(arr[j],i,k,max1,min1);
        divide(arr[j],k+1,j,max2,min2);
        min = (min1>min2) ? (min2) : (min1);
        max = (max1>max2) ? (max1) : (max2);
    }
}
}
主要

int main(){
int i,j,min,max,x;
i = 1;
scanf("%d",&j);

//Input the array
int arr[j];
for(x=0;x<j;x++){
    scanf("%d",&arr[x]);
}
divide(arr[j],i,j,max,min);
printf("%d %d", min, max);
}
intmain(){
int i,j,min,max,x;
i=1;
scanf(“%d”和“&j”);
//输入数组
int-arr[j];

对于(x=0;x当您调用
divide
时,您需要传递
arr
,而不是
arr[j]
arr[j]
只是数组中的一个元素。此外,您可能希望传递最小值和最大值作为指针,以便在主函数中实际获得新值