代码是栈溢出问题(用循环也溢出了),求教。
程序代码:
#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; }这是循环的
-------------
以下是问题