不知道咋写诶,大家能讲讲详细的过程吗,用了哪些函数,每一步是怎么进行的,结果是怎么运算的,感谢
//进入这个函数,三个参数,分别是一个指向数组的指针,和开始索引和结束索引
f(int b[], int m, int n)
//开始索引是3
//步长是2
//结束索引是7
//所以经历了a[3] = 4,a[5]=6, a[7]=8,所以答案是a[3]+a[5]+a[7] = 18
for(i = m; i <= n; i =i+2)
看黑板:
这个程序不知道是谁出的程序有错误,第一函数f的返回类型没有,第二return s应该放在for循环外面。我先来跟你讲一下运行流程,首先主函数main里面定义了整型变量x和数组a有9个元素。然后把数组名a,数字3,数字7传给了形参b[],m,n。然后f函数里面定义了整形变量i和s=0;接下来再是for循环从i=3开始循环到i=7结束。那么每次i自增2,也就是第一次i=3,第二次i=5,第三次i=7。对应数组下标分别是3,5,7。所以s=b[3]+b[5]+b[7]=4+6+8=18;上述程序有错我来修改如下:
#include<stdio.h>
int f(int b[], int m, int n)
{
int i, s = 0;
for (i = m; i <= n; i = i + 2)
{
s = s + b[i];
}
return s;
}
int main()
{
int x, a[] = { 1,2,3,4,5,6,7,8,9 };
x = f(a, 3, 7);
printf("%d\n", x);
}