c语言函数的嵌套调用

#define K 4
#define N 5
long f1(int n,int k)
{ long power=n;
int i;
for(i=1;i<k;i++) power *= n;
return power;
}
long f2(int n,int k)
{ long sum=0;
int i;
for(i=1;i<=n;i++) sum += f1(i, k);
return sum;
}
main()
{ printf("Sum of %d powers of integers from 1 to %ld = ",K,N);
printf("%d\n",f2(N,K));
getch();
}
for(i=1;i<k;i++) 1. 这句什么作用?那个k是什么值?2.power *= n;
这句什么意思?举例说明。3.i<=n 这句n的值是什么?
3.i<=n 这句什么作用

#define K 4 定义K为常量4
#define N 5 定义N为常量4(注意K、N均为大写,不同于下面的小写k、n)
long f1(int n,int k) 定义函数f1,形参为n,k
{ long power=n; 初始化变量power赋值为n
int i; 定义变量i
for(i=1;i<k;i++) power *= n; 此用了一个for循环,i的值从1到k-1(因为i<k,不是i<=k),power*=n就是power=power*n的意思,于是每循环一次,power就乘一次n,于是f1函数指的是n的k次方。(因为power本身为n,然后又循环k-1次)
return power; 返回power值,就是n的k次方。
}
long f2(int n,int k) 定义函数f1,形参为n,k
{ long sum=0; 初始化变量sum赋值为0
int i; 定义变量i
for(i=1;i<=n;i++) sum += f1(i, k); 此用了一个for循环,i的值从1到n,然后用调用了f1函数,这样意思为sum=0+f1(1,k)+f1(2,k)+f1(3,k)+……f1(n,k)
return sum; 返回sum值f1(1,k)+f1(2,k)+f1(3,k)+……f1(n,k)
}
main函数,我就不解释了哈!
有什么不懂,发百度消息给我,再探讨,呵呵!共同学习
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-08-22
1.这句的作用就是循环 从i=1开始循环至k结束 一共循环次数为(k-1)次
2.这句等同于 power=power*n
3.n在函数中是形参 而实参n的值在 “#define N 5” 语句中已经定义 所以是5
补充:这句的作用就是循环终止的条件
第2个回答  2009-08-22
#define K 4
#define N 5
long f1(int n,int k)
{ long power=n;
int i;
for(i=1;i<k;i++) power *= n;//求n的k次方,power原值为n,每次乘一个n,i从1到k-1,共k-1次,求出n的k次方,k是形参,你传什么数它就是什么, power *= n;相当于 power = power * n;
return power;
}
long f2(int n,int k)
{ long sum=0;
int i;
for(i=1;i<=n;i++) sum += f1(i, k);//i<=n是循环条件;不满足条件就退出循环,这句是把从1到n的数的k次方加起来,sum存储它们的和,n也是你传的实参值
return sum;
}
main()
{ printf("Sum of %d powers of integers from 1 to %ld = ",K,N);
printf("%d\n",f2(N,K));//你传的实参N,K,所以上面n=N,k=K,而你在开头宏定义了#define K 4,#define N 5,所以n=5,k=4
getch();
}
第3个回答  2019-05-18
#include
<stdio.h>
void
show(int
s)
{
printf("a+b
=
%d",s);
return;
}
void
add(int
a,
int
b)
{
int
s
=
a
+
b
;
show(s);
return;
}
int
main()
{
int
a
=
1,
b=
2;
add(a,
b);
return
0;
}