请教C语言的问题

如题所述

你这个程序有好几处问题啊,下面一点一点说的吧:

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;}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-04-02
我进行了相应的修改,若是在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);
}
第2个回答  2020-03-28
既然sum_power(n,k)=pow(n,k)+sum_power(n-1,k)

你至少要定义sum_power(0,k)及sum_power(1,k)两个初值。

另外你的K是什么?好象没有意义哟。

相关了解……

你可能感兴趣的内容

大家正在搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网