哦,可以,你看下吧。
前面的 int f(int m,int n)为一个以两个整形为参数,返回值为整形的子函数,实现的功能是把从m开始到n为止,中间相隔一个的数全加起来求和。
你这个主函数中,x=f(a[2],a[6]),a[2]=3,a[6]=7,相当于计算f(3,7),然后将所得的值赋值给x,最后输出x。
计算f(3,7)的过程如下:
s=0,i=m=3,n=7,判断i
打印输出8.
你的printf,少了个f。
运行到这句x=f(a[2],a[6]);
跳入f函数
因为a[2]=3,a[6]=7,
所以是x=f(3,7)
所以f里的for循环是
for(i=3;i<7;i=i+2)
s=s+i;
因为i=3是奇数,+2以后也是奇数,所以最后s的值就是3到7之内的奇数的和(不包括7)
int f(int m,int n) 也就是 m = 3, n = 7
{int i,s=0;
for(i=m;i
}
void main()
{int x,a[]={1,2,3,4,5,6,7,8,9};
x=f(a[2],a[6]); 这里的a[2]和a[6]分别是:3和7.这个不用我解释了吧?
print("%d\n",x); 因此,这里打印出来的是8.(这里print应是printf)
}
答案是8!把3和7传递给m和n,则i=3.循环两次结束!s=3+5!