代码是栈溢出问题(用循环也溢出了),求教。
程序代码:#include<stdio.h>
float f(float *a1,float *c1,int n1){
int k=0;
int j=n1;
if(j==1)
return a1[1]=(a1[0]+a1[2])/2-c1[1];
else
a1[j]=(a1[j-1]+a1[j+1])/2-c1[j];
f(a1,c1,n1-1);
}
int main(){
int n,i;
float d;
float c[1000]={0.0};
float a[1000]={0.0};
scanf("%d",&n);
scanf("%f%f",a,a+n);
for(i=0;i<n;i++)
scanf("%f",c[i]);
d=f(a,c,n);
printf("%f",d);
return 0;
}这是递归的---------------
程序代码:#include<stdio.h>
float f(float *a1,float *c1,int n1){
int k=0;
int j=n1-1;
while(j>=1)
{
a1[j]=(a1[j-1]+a1[j+1])/2-c1[j];
j--;
}
return a1[1];
}
int main(){
int n,i;
float d;
float c[100]={0.0};
float a[100]={0.0};
scanf("%d",&n);
scanf("%f%f",a,a+n+1);
for(i=0;i<n;i++)
scanf("%f",c[i]);
d=f(a,c,n+1);
printf("%f",d);
return 0;
}这是循环的-------------
以下是问题









