[Error] return-statement with no value, in function returning 'int' [-fpermissive]
时间: 2024-03-01 21:54:19 浏览: 103
这个错误通常是因为在一个返回值为int的函数中,你使用了不带返回值的return语句。例如:
```
int foo() {
return;
}
```
在这个例子中,return语句没有返回值,但是函数的返回类型是int,所以编译器会报错。
要解决这个错误,你需要确保在返回int类型的函数中使用带返回值的return语句,并且返回一个int类型的值。例如:
```
int foo() {
return 42;
}
```
这个函数返回一个int类型的值42,所以不会出现上述错误。
相关问题
C:\Program Files\CodeBlocks\sushuji\main.cpp|6|error: return-statement with no value, in function returning 'int' [-fpermissive]|
在你提供的代码中,问题出现在递归函数的返回类型不匹配。在C++中,你的递归函数getResult返回的是long long类型,而在翻译后的代码中,递归函数getResult返回的是int类型。这导致了编译错误。
为了解决这个问题,你需要将递归函数getResult的返回类型改为int,以与翻译后的代码匹配。修改后的代码如下:
```cpp
#include <iostream>
using namespace std;
void recursive(long long num, int count, int& ans) {
if (num == 1) {
ans = min(ans, count);
return;
}
if (num % 2 == 0) {
recursive(num / 2, count + 1, ans);
} else {
recursive(num + 1, count + 1, ans);
recursive(num - 1, count + 1, ans);
}
}
int getResult(long long num) {
int ans = INT_MAX;
recursive(num, 0, ans);
return ans;
}
int main() {
long long num;
cin >> num;
cout << getResult(num) << endl;
return 0;
}
```
这样修改后的代码应该可以正确编译和运行。
[Error] return-statement with a value, in function returning 'void' [-fpermissive]
这个错误通常是因为在一个返回类型为 `void` 的函数中使用了带有返回值的 `return` 语句。
例如:
```c++
void myFunction() {
return 0; // 错误,void 类型的函数不能有返回值
}
```
要解决这个错误,你需要确保你的函数返回类型为 `void`,并且不要在函数体中使用带有返回值的 `return` 语句。如果你需要在函数中返回一个值,那么你应该将函数的返回类型更改为相应的类型,如:
```c++
int myFunction() {
return 0; // 正确,返回类型为 int
}
```
阅读全文