你没声明akm函数,而且不能给一个函数赋值
by jhdrgfj @ 2023-01-17 17:51:37
@[customr](/user/919235)
我觉得您可以回去好好学学语法知识。
by Castaways @ 2023-01-17 17:57:06
@[customr](/user/919235) 函数没声明怎么调用,要把函数在 $main()$ 函数前声明
@[jhdrgfj](/user/776582) `x=fun(m,n);`没有问题呀,这不是给函数赋值,而是把 $x$ 赋值为 $fun(m,n)$ 的返回值
by VictoriaEVA @ 2023-01-25 21:57:07
@[customr](/user/919235) 缩进也应该注意一下,在编译器里设置一下格式化就行了.
还有 $main()$ 函数不要忘了 `return 0;` ,虽然平时没关系,**但可能导致比赛时爆0**
再把你的代码修改后放上来
```cpp
#include <bits/stdc++.h>
using namespace std;
int m,n;
int fun(m,n);
int main()
{
cin>>m>>n;
int x;
x=fun(m,n);
cout<<x;
return 0;
}
int fun(m,n)
{
if(m>0&&n==0)
akm(m,n)=akm(m-1,1);
else if(m>0&&n>0)
akm(m,n)=akm(m-1,akm(m,n-1));
else if(n==0)
return n+1;
}
```
或者干脆:
```cpp
#include <bits/stdc++.h>
using namespace std;
int m,n;
int fun(m,n)
{
if(m>0&&n==0)
akm(m,n)=akm(m-1,1);
else if(m>0&&n>0)
akm(m,n)=akm(m-1,akm(m,n-1));
else if(n==0)
return n+1;
}
int main()
{
cin>>m>>n;
int x;
x=fun(m,n);
cout<<x;
return 0;
}
by VictoriaEVA @ 2023-01-25 22:06:04
`#include <bits/stdc++.h>` 万能头文件它不香吗
by VictoriaEVA @ 2023-01-25 22:07:44
@[Victoria_wtq](/user/522483)
我是指
```cpp
akm(m,n)=akm(m-1,1);
```
等语句是错的,这样直接给函数赋值连编译都过不了,而且它的代码除了n=0都没有返回值。
by jhdrgfj @ 2023-01-26 17:14:31
@[jhdrgfj](/user/776582) e,打扰了
by VictoriaEVA @ 2023-01-26 18:15:23
@[jhdrgfj](/user/776582)
```cpp
int m,n;
int fun(m,n)
```
应该是
```cpp
int fun(int m,int n)
```
这是函数定义传参的格式,你上面的
```cpp
int m,n;
```
是定义的全区变量,而不是调用函数时需要传入的参数。而且外面的全局变量 n,m 会和 fun 函数里面的 n,m 产生冲突,建议放主函数里面。
还有 akm 应该是 fun 吧。
改了的代码:
```cpp
#include <bits/stdc++.h>
using namespace std;
int fun(int m,int n)
{
if(m==0)return n+1;
else if(m>0&&n==0)
return fun(m-1,1);
else if(m>0&&n>0)return fun(m-1,fun(m,n-1));
}
int main()
{
int m,n;
cin>>m>>n;
cout<<fun(m,n);
return 0;
}
```
by GCSG01 @ 2023-08-26 10:35:10