#include<stdio.h> int fun(int*a,int i,int j) {if(i<j&&j<5) {i++;j--; a[i]+=a[j]: {un(a,i,j); return a[i]; } } main() {int x[]={2,6,18,10,12},i; for(i=0;i<5;i++) if(i==2) print{("%d\n",fun(x,0,3)); }
参考答案:
解析:24 #include<stdio.h> int fun(int*a,int i,int j)/*此函数为采用递归算法的函数*/ {if(i<j&&j<5)/*保证i和j在数组范围内当i<j时执行下列语句*/ {i++;j--; a[i]+=a[j]; fun(a,i,j);/*函数自身调用自身的一个递归调用过程*/ return a[i];/*返用数组几素a[i]的值*/ } } main() {int x[]={2,6,18,10,12},i; for(i=0;i<5;i++) if(i=-2) printf("%d\n",fun(x,0,3));/*当a=2时打印输出fun(x,0,3)的值*/ }