#include "stdio.h"
double power(int m,int n)/*求M的N次方的值*/
{
int i;
double PW=1;
for(i=1;i<=n;++i)
PW*=m;
return(PW);
}
double sum_power(int k,int n)/*求1的K次方+2的K次方+3的K次方+。。。。的值并返回*/
{
int i;
double sum=0;
for(i=1;i<=n;++i)
sum+=power(i,k);
return(sum);
}
main()
{
int k,n;
printf("\ninput k:");
scanf("%d",&k);
printf("\ninput n:");
scanf("%d",&n);
printf("\nsum of%dth powers of integers from 1 to %d=%.01f\n",k,n,sum_power(k,n));
}(PS:这是求1的K次方加2的K次方一致加到N的K次方的代码,另外,PW*的*号在右上方)问题一:到底两个子函数是谁在谁的里面?问题二:假如的知道了是power嵌套在sum_power里面,那么是怎么嵌进去的?我怎么看不出来!因为在SUM_POWER里面看见POWER(i,k)的两个形参是怎么回事,解释一下啊!问题三:请问实参必须和子函数的形参一致吗?不要的话,举个列子吧,因为我老是在有参函数调用的时候,不知道()里面写什么?问题四:我怎么知道有必要定义函数的时候,要不要定义有参函数,因为书上写的是最好定义空的!
那我想知道,,MAIN()函数里面的K和N都给到什么地方去了?或者是先给到什么地方?再给到什么地方?这样问对吗?我的C语言太烂了!
追答printf("\nsum of%dth powers of integers from 1 to %d=%.01f\n",k,n,sum_power(k,n));
看到这里了么?前面一串就不看了,最后面,,sum_power(k,n),把k,n这两个东西传到了sum_power()里面的k和n里面了;然后这个函数里面的k和n就值了;然后开始执行sum_power(k,n)函数,一步步按着电脑执行的步骤走就行了
主函数调用了 sum_power , sum_power 调用了 power
sum+=power(i,k); 这里调用的
没明白你想问什么,调用函数的时候只要数据类型对就可以了
是否定义参数要看你想实现什么功能了,或者说要看你怎么设计你的程序
请问,一,MAIN函数在最后“ to %d=%.01f\n",k,n,sum_power(k,n));”调用的SUM_POWER的吗?
二,我说的是不搞不懂在调有参函数的时候,在函数名后面的括号里,写什么参数!
不要意思C语言太烂了,望指教!
是的
比如 sum+=power(i,k); 这句,power 函数的参量表是 int m,int n ,那么调用的时候就把 i 的值给了 m , k 的值给了 n ,然后把 m 和 n 带到 power 的函数体里运算。
n 在 sum_power 中也是不变的,赋给 power 的是 i ,而 i 循环了 1 到 n。剩下的理解都对
追问i++ 和 ++i 在这里没关系,都是在每次循环最后进行的。但是都写 i++ ,是习惯吧
本回答被提问者采纳