我正在尝试使用递归函数在数组中找到最小数字。但是我的代码给出了分割错误。
main()
{
int a[5]={2,1,4,5,3};
int n=1;
fumi(a,n,a[0],5);
}
fumi(int a[],int n,int min,int t)
{
if(n==t)
{
printf("%d",min);
}
if(a[n]<min)
{
min=a[n];
}
return(fumi(a,n+1,min,t));
}
哪里做错了,而且 main 没有返回任何东西都不是段错误的原因。
最佳答案
你还应该 return
在 printf("%d",min);
之后否则,你检查 if (a[t] < min)
, 和 a[t]
没有分配。
fumi(int a[],int n,int min,int t)
{
if(n==t)
{
printf("%d",min);
return; //This line was added
}
if(a[n]<min)
{
min=a[n];
}
return(fumi(a,n+1,min,t));
}
关于c - 为什么下面的代码会出现段错误问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7220761/