发布网友 发布时间:2022-04-22 19:32
共3个回答
热心网友 时间:2022-05-13 00:26
你这个程序有好几处问题啊,下面一点一点说的吧:
1:printf
("f(%d,%d)=%ld\n",sum_power(n,k));这一句中引号里面有三个输出位置,而括号内只有一个变量
可以将其改成printf
("f(%d,%d)=%ld\n",n,k,sum_power(n,k));
2:printf
("f(%d,%d)=%ld\n",sum_power(n,k));还是这一句,你调用了sum_power(n,k)这个函数,而在这之前你并没有定义或申明这个函数,解决办法有两种:(1)把sum_power(n,k)的函数定义放在主函数前面(2)在调用函数之前申明一下,你可以在int
k,
n;后面加一句int
sum_power(int,int);,这两种方法哪种都可以。
3:
int
sum_power(n,k)定义函数时如果带有参量,要说明参量类型即:
int
sum_power(int
n,int
k)
4:getch();这一句没看出也有多大用,可能是用来使界面停留在程序运行界面上吧,不过这个函数我不知道对不对,我在书上只见到getchar()这个函数
5:if(n==1)
sum_power(1,k)=1;这句中有一个赋值语句,等号左边不能是函数,只能是变量,可以改成:
int
sum_power(n,k)
{long
int
s;
if(n==1)
s=1;
else
s=pow(n,k)+sum_power(n-1,k);
return
s;}
综合上面的几点,下面给你一个完整的程序:
#include<stdio.h>
#include<math.h>
void
main()
{
int
k,
n;
long
int
sum_power(int,int);
printf("Please
input
n
and
k\n");
scanf
("%d%d",&n,&k);
printf
("f(%d,%d)=%ld\n",n,k,sum_power(n,k));
getchar();}
long
int
sum_power(int
n,int
k)
{long
int
s;
if(n==1) s=1;
else
s=pow(n,k)+sum_power(n-1,k);
return
s;}
热心网友 时间:2022-05-13 01:44
我进行了相应的修改,若是在VC中进行调试,使用getch必须使用头文件conio.h。另外在赋值语句中,左边必须是变量,所以不能使用函数。但你可以让结果返回。同时注意自己的书写格式。
#include<stdio.h>
#include<math.h>
#include<conio.h>
int
sum_power(int
n,int
k);
void
main()
{
int
k,
n;
scanf
("%d%d",&k,&n);
printf
("f(%d,%d)=%ld\n",sum_power(n,k));
getch();
}
int
sum_power(int
n,
int
k)
{
if(n==1)
return
1;
else
return
(int)pow(n,k)+sum_power(n-1,k);
}
热心网友 时间:2022-05-13 03:19
既然sum_power(n,k)=pow(n,k)+sum_power(n-1,k)
你至少要定义sum_power(0,k)及sum_power(1,k)两个初值。
另外你的K是什么?好象没有意义哟。