作为一个C++新手,我遇到了麻烦
I am having trouble as a newbie with C++
我是stackoverflow的新手,所以如果我问一些愚蠢的问题,请容忍我。我正在尝试手动构建一个幂函数,我将其命名为pow_1。然而,我遇到了一个错误,说"pow_1不是所有的控制路径都返回一个值。"这是我的代码:
long int pow_1(long int original, long int hat) {
long int total{1};
for (int i{ 1 }; i <= hat; i++) {
return total = total * original;
}
}
int main() {
long int x = 6;
long int y = 2;
std::cout << pow_1(x, y);
}
我会将您的代码更改为:
long int pow_1(long int original, long int hat) {
long int total{1};
for (int i{ 1 }; i <= hat; i++) {
/*return */total = total * original;
}
// return here instead
return total;
}
所以,在第一次for
迭代时,您将始终使用return
,而不是return
。
编辑
请注意,由于hat
是long int
,如果它大于int
的最大值,则for
循环将变成无限循环,因为i
是int
。
据此(limits.h
(:
INT_MAX = 32767
(取决于系统和库实现(LONG_MAX = 2147483647
(取决于系统和库实现(
因此,如果hat
是例如33000
,则循环将永远递增i
,因为当i
达到32767
并且我们递增它时,它将变成-32767
,然后是-32766
、-32765
,并且以这种方式继续递增。
错误消息是不言自明的,并不是通过函数的所有可能路径都返回值。如果hat为0,则不会执行任何返回语句,并且函数将具有未定义的结果。大概预期的代码是:
long int pow_1(long int original, long int hat) {
long int total{1};
for (int i{ 1 }; i <= hat; i++) {
total = total * original;
}
return total;
}
相关文章:
- 编译包含字符串的代码时遇到问题
- 遇到新行时,有没有办法停止istream_iterator
- 我是C++编程的新手,这些代码之间有什么区别,我应该使用哪一个
- 在使用GPU支持编译Tensorflow时,会遇到CUDA_TOOLKIT_PATH未绑定变量
- 如何在C++向量中奇数元素前面加上值-1,我在使用insert函数时遇到了问题
- 我是c ++的新手,你能解释一下在这种情况下的指针吗
- 在 for 循环中查找问题时遇到困难
- 创建结构的数组时遇到分段错误
- 代码在我的计算机上运行良好,但是在将其提交给coursera时遇到未知的信号11问题
- 为什么我遇到分段错误?
- 在顶点着色器中使用 OpenGl 的未声明标识符,我在顶点着色器中绘制三角形时遇到问题
- 这些是什么样的错误?即使我不在 Linux 上工作,我也遇到了 Linux 错误
- 我是 c++ 的新手.学习基本知识后,我想做井字游戏.对于印刷板,我在下面写代码,但它显示错误
- 我是编程新手
- 为什么我在尝试模板时遇到视觉工作室C++错误
- 如何从文本文件中读取数值,直到遇到字符类型?
- 作为一个C++新手,我遇到了麻烦
- C++新手,我在调用函数时遇到问题
- 我是C++新手。我在此代码中遇到错误,无法使用 SwapNodes 函数C++创建链表。该函数不交换节点
- 我是C++新手,我正在尝试平均用户给出的一定数量的成绩。遇到找不到的编译器错误