金炳万参加runningman:c语言问题?在线等

来源:百度文库 编辑:高考问答 时间:2024/04/30 03:06:25
编写计算x的y次幂的递归函数fun(int x,int y),并在主程序中实现输八/输出!

#include<stdio.h>
int fun(int x,int y)
{
long int s;
if(y==1)
s=x;
else
s=fun(y-1)*x;
return s;
}
main()
{
int a,b;
long int s;
scanf("%d,%d",&a,&b);
s=fun(a,b);
printf("%d\n",s);
}

程序执行不了!s=((fun(y-1))*x
并显示:too few parameter in call to 'fun' in function

希望解释一下,为什么会出现这样的错误呢?

s=fun(y-1)*x;这里错误~!因为函数有两形参,而你这里只有一个,当然不正确了~!因为系统不识别`!还有返回值的类型不匹配

s=fun(y-1)*x这句里fun的函数怎么只有一个变量?定义的时候是两个,所以出错。
还有再把int fun(int x,int y)这句定义换成长整形的试试

主函数里面的变量s与函数fun()的返回类型长度不一致.

#include<stdio.h>
int fun(int x,int y)
{
long int s=x;
if(y) return s*fun(x,--y);
else return 1;
}
main()
{
int a,b;
long int s;
scanf("%d,%d",&a,&b);
s=fun(a,b);
printf("%d\n",s);
}