我编写了一个简单的代码来解决一个人为的问题。我希望程序在 N =< 3
之后退出循环体,但在不满足条件后继续迭代。我哪里出错了?
int main(){
uint8_t N = 0;
int power = 1;
std::cin >> N;
while (N >= 4){
power *= 3;
N -= 3;
}
power *= N;
std::cout << power;
return 0;
}
gcc 12.2.0. Flags -Wall -O2
我尝试使用循环 for (N; N >= 4; N -=3)
,但结果没有改变。
最佳答案
uint8_t
是 char
类型。
在 stdint.h 中,
typedef unsigned char uint8_t;
由于隐式转换,'4'
将得到整数 52
。
如果您接受数字,则可以只使用 int
类型。
关于c++ - while 循环不会在 bool 条件下停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74300516/