c语言递归求数组最小值
#include<stdio.h>intfun(intb[],intn){if(n==0){returnb[n];}else{if(b[n]<b[n-1]){return...
#include<stdio.h>
int fun(int b[],int n)
{
if(n==0)
{
return b[n];
}
else
{
if(b[n]<b[n-1])
{
return fun(b,n-1);
}
else
{
return fun(b,n-1);
}
}
}
main()
{
int t;
int a[10]={2,1,3,4,5,6,7,8,9,10};
t=fun(a,9);
printf("%d",t);
}
这程序错哪啦 展开
int fun(int b[],int n)
{
if(n==0)
{
return b[n];
}
else
{
if(b[n]<b[n-1])
{
return fun(b,n-1);
}
else
{
return fun(b,n-1);
}
}
}
main()
{
int t;
int a[10]={2,1,3,4,5,6,7,8,9,10};
t=fun(a,9);
printf("%d",t);
}
这程序错哪啦 展开
6个回答
展开全部
#include<stdio.h>
int fun(int b[],int n)
{
if(n==0)
return b[n];
b[0] = b[0] > b[n]?b[n]:b[0];
return fun(b,n-1);
}
void main()
{
int t;
int a[10]={2,1,3,4,5,10,6,7,8,9};
t=fun(a,9);
printf("%d",t);
}
int fun(int b[],int n)
{
if(n==0)
return b[n];
b[0] = b[0] > b[n]?b[n]:b[0];
return fun(b,n-1);
}
void main()
{
int t;
int a[10]={2,1,3,4,5,10,6,7,8,9};
t=fun(a,9);
printf("%d",t);
}
追问
你这是错的
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if(b[n]<b[n-1])
{
return fun(b,n-1);
}
else
{
return fun(b,n-1);
}
这个if else貌似完全一样哒。
而且这个函数最终结果只能输出a[0]。
{
return fun(b,n-1);
}
else
{
return fun(b,n-1);
}
这个if else貌似完全一样哒。
而且这个函数最终结果只能输出a[0]。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个递归函数只有一个出口, 就是n为0时返回b[0]的值.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int fun(int data[],int n){
if(n <= 0){
return data[0];
}
return data[n]> fun(data,n-1) ? fun(data,n-1):data[n];
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
返回条件改一下
else if(b[n]<b[n-1])
{
return b[n]<fun(b,n-1)?b[n]:fun(b,n-1);
}
else
{
return fun(b,n-1);
}
else if(b[n]<b[n-1])
{
return b[n]<fun(b,n-1)?b[n]:fun(b,n-1);
}
else
{
return fun(b,n-1);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询