题主你好,我来给您指出几个问题。第一,您的f函数返回的double对应的主函数里面是%d应当是%lf。
第二,自定义函数的命名不要写成f(x,y)。我们尽量采用大驼峰形式或小写英文加_形式,如大驼峰:AbcDef,英文:abc_def这种形式。
第三,函数的声明和定义,如果不模块化程序的话,不用在同一源文件下声明。就是double f(x,y)(int x,int y);这句话去掉。
第四,if语句里面的&&是并且的意思,||才是或的意思。
如果有收获麻烦给个最佳回复并点赞。
下方有我给您修改后的代码:
#include<stdio.h>
double f(int x, int y)
{
if (x <= 0 || y <= 0)
return 1;
else
return (f(x - 1, y) + f(x, y - 1) + f(x - 1, y - 1));
}
int main()
{
int x = 0;
int y = 0;
scanf("%d %d", &x, &y);
printf("%lf", f(x, y));
return 0;
}