首页 > 解决方案 > 为什么“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";

标签: c++

解决方案


num % divisorwithdivisor=0除以零,这通常会导致中止。

您应该为此提供另一个初始值(可能12看起来不错,具体取决于目的)。

此外,正如@KfirVentura 指出的那样,您应该在循环中更新divisor(或),否则如果最初num为真,循环将无限运行。divisor<num


推荐阅读