设计函数用递归算法将数组进行升序排列(c语言) 以下函数定义哪儿有错?
voidRecurSelectSort(inta[],intn,intmin)//升序函数的定义{inti,m;for(i=min;i<=n-1;i++)//在数组剩余的...
void RecurSelectSort(int a[],int n,int min)//升序函数的定义 { int i,m; for(i=min;i<=n-1;i++)//在数组剩余的数中找出最小数 { if(a[i]<a[min])//将最小数与当前排列的数进行交换 { m=a[min]; a[min]=a[i]; a[i]=m; } } while(min<=n-1) RecurSelectSort(a,n,min+1);
展开
2013-07-06
展开全部
没有返回值,while会一只调用 ,不停计算,死循环来的,那个递归只用调用一次就好了,不用循环, int a[]应该没错吧,不过平时习惯好像是指针。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-07-06
展开全部
void RecurSelectSort(int a[], int n, int min)//升序函数的定义
{
int i,m;
for( i = min; i < n; i++)//在数组剩余的数中找出最小数
{
if(a[i]<a[min])//将最小数与当前排列的数进行交换
{
m=a[min];
a[min]=a[i];
a[i]=m;
}
}
if( min < n)
RecurSelectSort( a, n, min+1);
}
把while换为if就可以了,你这样弄会出现死循环。
{
int i,m;
for( i = min; i < n; i++)//在数组剩余的数中找出最小数
{
if(a[i]<a[min])//将最小数与当前排列的数进行交换
{
m=a[min];
a[min]=a[i];
a[i]=m;
}
}
if( min < n)
RecurSelectSort( a, n, min+1);
}
把while换为if就可以了,你这样弄会出现死循环。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询