gpt4 book ai didi

c++ - ISO C++ 禁止比较指针和整数 [-fpermissive]

转载 作者:太空宇宙 更新时间:2023-11-04 14:55:52 27 4
gpt4 key购买 nike

代码

int cycle_length(int i, int j) {
int cycleLength = 0;
for (int k = i; k <= j; k++) {
cout << algorithm(k) << endl;
if (algorithm(k) > cycle_length) {
cycleLength = algorithm(k);
}
}
return cycleLength;
}

ISO C++ 禁止比较指针和整数 [-fpermissive]

我在这一行 if ( algorithm(k) > cycle_length) 中遇到了这个错误。

然而,相同的代码如何在 main() 中正常工作?这个错误是什么意思???

已添加算法是一个接受整数输入并返回整数的函数。

int algorithm(int number1) {
int counter = 1, number = number1;
do {
if (number % 2 == 0) {
number = number / 2;
counter++;
} else {
number = (3 * number) + 1;
counter++;
}
} while (number != 1);

return counter;
}

最佳答案

您将函数名称与几乎同名的局部变量混淆了:

int cycle_length(int i, int j)
{
int cycleLength

您的函数名为 cycle_length,您的变量名为 cycleLength - 但您正在进一步使用 cycle_length

错误信息有点奇怪,因为编译器不会“比较变量名和函数名,看看是否有相似的,然后提示你可能只是输入错误”——它只是说“嗯,你正在比较一个函数指针 [你从函数名称中得到的] 和一个整数,那是不对的!”

关于c++ - ISO C++ 禁止比较指针和整数 [-fpermissive],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14589111/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com