【发布时间】:2019-06-06 21:56:02
【问题描述】:
当我调用冒泡排序递归函数时,数组没有得到排序。
#include"stdio.h"
void bubble(int *arr,int n,int vidx){
if(n==0)
return;
if(vidx == n)
bubble(arr,n-1,0);
return;
if(*(arr+vidx) > *(arr+vidx+1)){
int temp = *(arr+vidx);
*(arr+vidx) = *(arr+vidx+1);
*(arr+vidx+1) = temp;
bubble(arr,n,vidx+1);
return;
}
} int main(){
int a[] = {5,4,3,2,1};
bubble(&a,5,0);
for(int i = 0 ; i < 5 ; i++)
printf("%d,",a[i]);
return 0; }
实际输出:5,4,3,2,1,
预期输出:1,2,3,4,5,
【问题讨论】:
标签: c arrays pointers recursion