gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 19:03:50 24 4
gpt4 key购买 nike

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

流程

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);
}

当我执行代码时,我可以输入大小和数组,但程序无法运行(错误)

请帮我,如何在函数中传递数组?

最佳答案

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

关于c - 在 C 函数递归中传递无符号数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53384976/

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