c++ - 为什么“if”不在循环中执行?
问题描述
,cout << "Fin"
它永远不会被执行
int main(){
int num, suma=0, divisor=0;
cout<<"Escribe un número"<<endl;
cin>>num;
cout<<num<<": ";
while(divisor<num){
if(num % divisor==0){
cout<<divisor;
}
}
cout<<"Fin";
解决方案
num % divisor
withdivisor=0
会除以零,这通常会导致中止。
您应该为此提供另一个初始值(可能1
或2
看起来不错,具体取决于目的)。
此外,正如@KfirVentura 指出的那样,您应该在循环中更新divisor
(或),否则如果最初num
为真,循环将无限运行。divisor<num
推荐阅读
- next.js - nextjs 配置避免http服务器超时
- google-sheets - 如何在 Google 表格中获取消费者价格指数(CPI)?
- java - IntelliJ IDEA add library和maven依赖的区别
- node.js - Angular 8:ngx-socket-io 在 prod 模式下运行时重写连接 url
- java - 如何修复线程“Thread-4”java.lang.IllegalStateException 中的异常:不在 FX 应用程序线程上;currentThread = Thread-4 异常?
- ruby-on-rails - 在 Rails 中运行时连接到多个数据库
- java - 使用一些操作反序列化嵌套的 json java
- azure - SQL Server Management Studio 忽略用于连接的 Windows 代理
- java - 当对每个元素的操作产生不同的结果计数/持续时间时,保持初始可迭代排序顺序稳定
- python - Python创建空的二维数组